2011-09-17 5 views
2

数字またはテキストのどちらを選択するかによって、別のメニューオプションを表示したい。選択に応じてコンテキストメニューをレンダリングする

私はコンテンツスクリプトで試してみましたが、動作するために必要な場所であるgmailで動作させることはできません。ここで

Background.html

<script src="driver.js"></script>

content_script.js

document.addEventListener("mousedown", function(event){ 
    if(event.button == 2) { 
    var selection = window.getSelection().toString(); 
    chrome.extension.sendRequest({cmd: selection}); 
    } 

}, true); 
は、(それがhttpsの事です?)それはGmailの以外のサイト上で動作し、私が持っているものです

driver.js

chrome.extension.onRequest.addListener(function(request) { 
    alert(request.cmd); 
}); 

manifest.jsonを

{ 
"name": "Context Menu Search", 
"description": "Opens the selected text as keyword in a new window", 
"version": "0.1", 
"permissions": ["contextMenus"], 
    "content_scripts": [ 
    { 
     "matches": ["http://*/*","https://*/*"], 
     "js": ["content_script.js"] 
    } 
    ], 
"background_page": "background.html" 
} 
+0

http://stackoverflow.com/questions/6382467/chrome-extension-context-menus-how-to-display-a-menu-item-only-when-there-is-no – serg

答えて

1

Selection type changes context menu using chrome extension

あなたはダウンマウスのリスナーを設定する必要があります。メニューが作成される前に、選択したテキストを取得する他の方法はありません。

chrome extension context menus, how to display a menu item only when there is no selection?

はここで残りはリンクにあるコードの一部です:

は、このSO質問を参照してください。

document.addEventListener("mousedown", function(event){ 
//right click 
if(event.button == 2) { 
    if(window.getSelection().toString()) { 
     chrome.extension.sendRequest({cmd: "createSelectionMenu"}); 
    } else { 
     chrome.extension.sendRequest({cmd: "createRegularMenu"}); 
    } 
    } 
}, true); 
+0

感謝を参照してください私は遊びをして、それを働かせました。ただし、httpsサイトでは動作しません。この拡張機能を自分のGmailアカウントで使用しています。マニフェストファイルに以下を追加しました。 "content_scripts":[{ "マッチ": "HTTP:// */*"、 "HTTPS:// */*"]、 "のJS":[ "content_script.js"]} ]、 – BeepBoop

+1

私のコードで質問を更新しました。 – BeepBoop

+1

うまくいきました。マニフェストファイルで "all_frames"をtrueに設定すると、Gmailでの作業が始まりました。 "アクセス許可": "contextMenus"]、 "content_scripts":[{ "マッチ": "HTTP:// */*"、 "HTTPS:// */*"]、 「JS ":[" content_script.js "]、 " all_frames ":true } ]、 – BeepBoop

関連する問題