私は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を使用しています。
アイデアはありますか?
'chrome.contextMenus'を試しましたか?それは働くのでしょうか? – squgeim
問題が重複している[mcve]を含めて、トピック上にある質問を編集してください。 Chrome拡張機能やFirefox WebExtensionsの場合は、* manifest.json *や背景/コンテンツ/ポップアップスクリプト/ HTMLの一部を含むことがほとんどです。 (1)望ましい動作、(2)特定の問題またはエラー、および(3)それを再現するために必要な最短のコードを含める必要があります。質問自体に*。また、[ここで私はどのような話題を聞くことができますか?](http://stackoverflow.com/help/on-topic)、[ask]を参照してください。 – Makyen
特に、完全な* manifest.json *が必要です。問題は、マニフェスト内の他のものの結果である可能性があります。複製しようとすると、あなたのコードの内容に関して何らかの前提をする必要があり、その試みを無効にする可能性があります。質問に含まれているものをコピーして新しいディレクトリに貼り付けるだけで、新しいプロファイルに拡張機能をロードして問題を再現できるように、十分に質問に含めてください。実際にテストして、複製する質問が十分あることを確認するのが最善です。 – Makyen