2017-01-14 25 views
0

我想創建左鍵單擊菜單。我怎樣才能在我的Chrome擴展上做到這一點?如何在Chrome擴展程序中創建左鍵單擊菜單

這是我的右鍵菜單:

chrome.runtime.onInstalled.addListener(function() { 
    chrome.contextMenus.create({ 
     title: 'Dolar', 
     id: 'dolar', 
     contexts: ['all'], 
    }); 
}); 

chrome.contextMenus.onClicked.addListener(function(info, tab) { 
    if (info.menuItemId === "dolar") { 
     alert("Hello"); 
    } 
}); 

爲了使其左擊,我該如何改變呢?

+1

在[內容腳本](https://developer.chrome.com/extensions/content_scripts)中手動執行。 – wOxxOm

+0

這是唯一的方法嗎? @wOxxOm – oguzkaganeren

+1

是的,這是唯一的方法。 – wOxxOm

回答

0

沒有特殊的Chrome擴展API來創建左鍵單擊的菜單。要製作一個左鍵單擊的菜單,您需要在任何想要使用它的頁面中注入content script。在該內容腳本中,您需要使用左側按鈕來收聽click事件。然後,您需要在DOM中插入組成菜單的元素。您需要手動完成所有這些工作,或者找到一個能夠抽象出問題的庫。

一般而言,這與大多數機器上使用的用戶界面不一致。這將與大多數用戶的期望相反,並可能導致用戶混淆。另外,除了正常的鏈接點擊(例如激活下拉/彈出菜單等)之外,網頁預計能夠使用左鍵單擊以用於他們想要的任何目的(如果有的話)。您對它的使用將與使用左鍵點擊進行頁面內的任何交互相沖突。除非你有一個特定的用例,否則有一個通常可用的左鍵菜單可能是一個壞主意。

有一個UI元素在用戶點擊它時打開菜單是一種不同的情況。在這種情況下,用戶點擊預期會做某事的UI元素。但是,您應該仔細考慮是否將UI加載到每個頁面中都適用。有時候是這樣。這樣做會給您的插件完全不用的頁面帶來沉重的負擔。您可以通過在頁面中加載最小量來顯示UI的開始,從而將這種影響降至最低。然後,只有當用戶開始與您的擴展的UI進行交互時才加載其他代碼/庫/ UI。當您的擴展程序用於有限的一組頁面(即修改特定域/頁面上的UI)時,在頁面中需要UI更有可能是這種情況。但是,對於大多數擴展,與附加組件的常規交互將以瀏覽器/頁面操作按鈕單擊,熱鍵,上下文菜單項或附加組件開始,併爲用戶打開UI(即不通過爲每個頁面添加一個完整的UI)。

相關問題