1

この問題で立ち往生してから何時間も経ちましたが、ユーザーがGoogle Chrome拡張機能をクリックするたびにコンテキストメニューを表示する方法を知っている人はいますか? default_popup でメニューを表示することはできましたが、これをコンテキスト メニューに実装する必要があることがわかりました。

画像は次のとおりです。

私はこの次のコードを持っています

マニフェスト.json

{
    "name": "Hello Toolbar",
    "version": "1.0",
    "manifest_version": 2,
    "description": "A Toolbar that helps.",
    "browser_action": {
        "default_icon": "icon.png"
    },
    "background": {
        "scripts": ["background.js"]
    },
    "permissions": [
        "cookies",
        "http://*/*",
        "tabs",
        "contextMenus"
    ]
}

background.js

chrome.browserAction.onClicked.addListener( function(tab){
    chrome.contextMenus.create({"title": "Test parent item", "contexts": ['page']}); 
});

しかし、うまくいきません。

4

1 に答える 1

4

chrome.contextMenusAPIに対するあなたの期待は間違っていると思います。コンテキストメニューを開くために使用することはできません。一部のカスタム条件が満たされた場合にのみ、Chromeにコンテキストメニューエントリを表示するように指示できます(これらの条件の定義については、メソッドのドキュメントを参照してください)。create

以下のスクリーンキャストでは、コードに期待される動作を示しています。

  • ユーザーが右クリックしない限り、コンテキストメニューは表示されません。
  • ブラウザのアクションボタンをクリックした後、ページ内のコンテキストメニューを開くと、コンテキストメニューエントリが表示されます。

クリック時に「ポップアップ」を表示する場合は、マニフェストファイル"default_popup"のセクションのエントリを使用します。"browser_action"次に、次のように表示されます。

CSSを使用して、ポップアップを「コンテキストメニュー」のように見せることができます。ブラウザのアクションドキュメントには、いくつかの例が記載されています。

于 2012-10-15T09:05:52.030 に答える