【问题标题】:Firefox extension: JavaScript file included via script tag is not workingFirefox 扩展:通过脚本标签包含的 JavaScript 文件不起作用
【发布时间】:2019-05-06 07:50:23
【问题描述】:

基于example from MDN,我创建了自己的扩展程序,仅显示“嗨”消息。我通过标签包含了一个名为“popup.js”的文件。但是这个文件没有被执行。
这是我的 ma​​nifest.json 文件:

{
  "manifest_version": 2,
  "name": "Ext",
  "version": "1.0",
  "description": "Shows a hi message.",
  "icons": {
    "48": "icons/ff.jpg"
  },
  "permissions": ["tabs"],
  "browser_action": {
    "default_icon": "icons/toggle-off.png",
    "default_title": "EXT",
    "default_popup": "popup/popup.html"
  }
}

这是我的 popup.html 文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h2>Hi</h2>
<script src="popup.js"></script>
</body>
</html>

我的 popup.js 文件中只有一行。也就是说,

console.warn("This is a warning");

但我在控制台中看不到任何内容。当我单击扩展图标时,弹出窗口正确显示。
我不知道这里缺少什么。任何帮助表示赞赏!

【问题讨论】:

  • 您的消息打印在控制台中。只是不是当前页面的控制台。弹出窗口有它自己的一个。
  • @Xan 感谢您提供的信息。这对我来说是新信息。
  • 请参阅stackoverflow.com/a/31649411/934239 以获取 Chrome 答案;对于 Firefox,类似

标签: javascript firefox-addon-webextensions


【解决方案1】:

最后,我找出了问题所在。 要执行通过标签包含的 js 文件中的代码,您需要在 browser.tabs.executeScript 中指定该代码,并且我的 manifest.json 文件中有错误。我应该将权限指定为activeTab 而不是tabs
所以我修改后的 ma​​nifest.json 文件是:

{
  "manifest_version": 2,
  "name": "Ext",
  "version": "1.0",
  "description": "Shows a hi message.",
  "icons": {
    "48": "icons/ff.jpg"
  },
  "permissions": ["activeTab"],
  "browser_action": {
    "default_icon": "icons/toggle-off.png",
    "default_title": "EXT",
    "default_popup": "popup/popup.html"
  }
}

我的 popup.js 文件变成:

browser.tabs.executeScript({code: `console.warn("This is a warning")`});

有关详细信息,请参阅docs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-19
    • 2011-04-18
    • 1970-01-01
    • 2011-08-18
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多