首页 > 解决方案 > 为什么此 Firefox 扩展代码不适用于 contextMenus 的提示或警报?

问题描述

我有以下background.js脚本:

browser.runtime.onInstalled.addListener(function () {
  browser.contextMenus.create({
    id: 'add-todo',
    title: 'Add a todo',
    contexts: ['page']
  });
});

browser.contextMenus.onClicked.addListener(function (clickData) {
  if (clickData.menuItemId === 'add-todo') {
    var todoName = window.prompt('Add a todo')

    alert(todoName);
  }
});

以及以下manifest.json

{
  "manifest_version": 2,
  "name": "Todo",
  "version": "1.0",
  "description": "Yet another todo app",
  "browser_action": { "default_popup": "index.html" },
  "permissions": ["contextMenus"],
  "background": {
    "scripts": [
      "background.js"
    ]
  }
}

右键单击时可以看到上下文菜单,但单击它什么也不做。

奇怪的是,当我通过浏览器操作按钮打开扩展程序并显示 mypopup.html时,我可以右键单击那里并看到一个提示对话框。

我在 Chrome 中使用与webextension-polyfill库相同的代码,它工作得很好。

Firefox 带来了什么?

标签: firefoxfirefox-addon-webextensions

解决方案


推荐阅读