【发布时间】:2023-03-15 17:33:01
【问题描述】:
我指的是https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/contextMenus/onClicked。 我已使用此示例中的代码在我的 background-script.js 中进行测试,但此代码似乎无法像许多其他 webextension 代码一样正常工作。
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'"
}
background-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);
});
content-script.js
console.log('File: content-script.js');
结果:
TypeError: browser.contextMenus is undefined
我使用的是 Firefox 52.0.1。
有人出主意吗?
【问题讨论】:
-
你试过
chrome.contextMenus吗?那个有用吗? -
请edit 成为主题的问题:包括一个重复问题的minimal reproducible example。对于 Chrome 扩展程序或 Firefox WebExtensions,这几乎总是意味着包含您的 manifest.json 和一些背景、内容和/或弹出脚本/HTML。寻求调试帮助的问题(“为什么这段代码没有按我想要的方式工作?”)必须包括:(1)期望的行为,(2)特定的问题或错误以及(3)重现它所需的最短代码在问题本身中。另请参阅:What topics can I ask about here? 和 How to Ask。
-
尤其需要完整的 manifest.json。该问题可能是清单中其他问题的结果。在尝试复制时,我们需要对您的代码内容做出任何假设可能会使我们这样做的尝试无效。请在问题中包含足够的内容,以便我们可以将问题中的内容复制并粘贴到新目录中,在新配置文件中加载扩展并复制问题。最好是实际测试一下,以验证问题中是否有足够的重复内容。
-
@squgeim 虽然我使用 Firefox 并试图理解 webExtensions,但我在您提出问题后尝试过,但结果相同:TypeError: chrome.contextMenus is undefined.
-
@Makyen 好的,我已经添加了其他信息。
标签: javascript firefox-addon-webextensions