javascript - Mozilla WebExtensions contextMenus.create 不工作

标签 javascript firefox-addon-webextensions

<分区>

我正在尝试为 FireFox 开发一个带有 contextMenu 的 WebExtension。目前我只有两个文件,没有真正的功能。问题是即使使用来自 Mozilla Developer Network 的示例代码,它似乎也无法正常工作 - 所以我假设它在 list 中,但我似乎找不到问题所在。

这是我的 manifest.json 文件:

{
  "manifest_version": 2,
  "name": "FullWindow",
  "version": "1.0",

  "description": "Test plugin.",

  "permissions": ["contextMenus"],

  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["fullwindow.js"]
    }
  ]
}

这是我的fullwindow.js 文件:

console.log("Plugin loaded!");

browser.contextMenus.create({
  id: "radio-green",
  type: "radio",
  title: "Make it green",
  contexts: ["all"],
  checked: false
}, onCreated);

function onCreated() {
  if (browser.runtime.lastError) {
    console.log("error creating item:" + browser.runtime.lastError);
  } else {
    console.log("item created successfully");
  }
}

console.log("Test!");

这里的问题是除了最初的“插件已加载!”之外,我没有得到任何控制台日志。也不要得到我的上下文菜单项。

最佳答案

contextMenus API 仅在后台脚本中可用,在内容脚本中不可用。这记录在这里: https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts#WebExtension_APIs

有关网络扩展的更广泛概述,请参阅此页面: https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension

关于javascript - Mozilla WebExtensions contextMenus.create 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44889647/

相关文章:

javascript - 覆盖 CanvasRenderingContext2D.getImageData()

javascript - 使用 grunt 和 dist 项目文件夹进行开发和部署时如何管理 Bower 依赖项?

javascript - 带有文字的 TinyMCE 自定义按钮

javascript - 如何从javascript中的对象中删除时间?

javascript - 自定义 react 下拉组件在每个用户输入上重新呈现

javascript - Chrome 扩展::尝试理解 chrome.runtime.sendmessage 到 chrome.runtime.onMessage 的语法

jquery - Mozilla 附加组件拒绝 jQuery(尽管没有被修改)

javascript - 火狐浏览器 : how to serve sourcemaps for web extension

javascript - 当 "onsubmit"事件调用 Javascript 函数时,没有提交 asp.net 表单

javascript - 如何在弹出窗口关闭后保持扩展脚本运行?