2017-03-24 16 views
1

私はhttps://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/contextMenus/onClickedを参照しています。 この例のコードをbackground-script.jsでテストするために使用しましたが、このコードは他のwebextensionコードのように正しく動作していないようです。Firefox WebExtension - TypeError:browser.contextMenusは定義されていません

manifest.jsonを

{ 
    "description": "Description ...", 
    "manifest_version": 2, 
    "name": "open-my-page", 
    "version": "1.0", 
    "homepage_url": "https://github.com/", 
    "icons": { 
    "48": "icons/page-48.png" 
    }, 
    "background": { 
    "scripts": ["background.js"] 
    }, 
    "browser_action": { 
    "default_icon": "icons/page-32.png" 
    }, 
    "content_scripts": [{ 
    "matches": ["<all_urls>"], 
    "js": ["/content-script.js"] 
    }], 
    "permission": [ 
    "activeTab", 
    "contextMenus", 
    "notifications", 
    "tabs", 
    "<all_urls>" 
    ], 
    "content_security_policy": "script-src 'self' https://api.github.com; object-src 'self'; img-src 'self'" 
} 

背景script.js

console.log('File: background.js'); 

browser.contextMenus.create({ 
    id: "click-me", 
    title: "Click me!", 
    contexts: ["all"] 
}); 

browser.contextMenus.onClicked.addListener((info, tab) => { 
    console.log("Item " + info.menuItemId + " clicked " + 
       "in tab " + tab.id); 
}); 

コンテンツscript.js

console.log('File: content-script.js'); 

結果:

TypeError: browser.contextMenus is undefined 

私は、Firefox 52.0.1を使用しています。

アイデアはありますか?

+0

'chrome.contextMenus'を試しましたか?それは働くのでしょうか? – squgeim

+0

問題が重複している[mcve]を含めて、トピック上にある質問を編集してください。 Chrome拡張機能やFirefox WebExtensionsの場合は、* manifest.json *や背景/コンテンツ/ポップアップスクリプト/ HTMLの一部を含むことがほとんどです。 (1)望ましい動作、(2)特定の問題またはエラー、および(3)それを再現するために必要な最短のコードを含める必要があります。質問自体に*。また、[ここで私はどのような話題を聞くことができますか?](http://stackoverflow.com/help/on-topic)、[ask]を参照してください。 – Makyen

+0

特に、完全な* manifest.json *が必要です。問題は、マニフェスト内の他のものの結果である可能性があります。複製しようとすると、あなたのコードの内容に関して何らかの前提をする必要があり、その試みを無効にする可能性があります。質問に含まれているものをコピーして新しいディレクトリに貼り付けるだけで、新しいプロファイルに拡張機能をロードして問題を再現できるように、十分に質問に含めてください。実際にテストして、複製する質問が十分あることを確認するのが最善です。 – Makyen

答えて

1

manifest.jsonファイルでは、permissionsでなく、permissionである必要があります。

+0

それはあなたのために働いたのですか?これは私があなたのコードで見つけた唯一の問題です。 – squgeim

+0

あなたは正しいです。どうも。 – Pmel

+0

誤ってマニフェストで 'permissions'を2回定義しても、それに気付かなかったときに同様の問題に遭遇しました( – jomo

関連する問題