javascript - Firefox 扩展 : JavaScript file included via script tag is not working

标签 javascript firefox-addon-webextensions

基于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");

但是我在控制台中看不到任何东西。当我单击扩展图标时,弹出窗口正确显示。
我不知道这里缺少什么。感谢您的帮助!

最佳答案

最后,我找出了问题所在。 要从通过标记包含的 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了解更多详情。

关于javascript - Firefox 扩展 : JavaScript file included via script tag is not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56000922/

相关文章:

firefox-addon-webextensions - WebExtensions : browser. webRequest.onCompleted 永远不会触发

javascript - 从浏览器扩展覆盖 JavaScript 函数

javascript - youtube如何使用ajax

javascript - Nodejs + Express 总是返回index.html

javascript - 收听添加到文档中的脚本

javascript - 如何监听 XMLHttpRequests - 浏览器扩展

javascript - 如何获取 firefox web 扩展中当前选项卡的标题?

javascript - 在 lodash 中,为什么谓词和结果变量没有以 var 关键字作为前缀?

javascript - 通过 HTML 文本框查找某些子字符串,然后用其他字符串替换它们

javascript - jqgrid自定义删除消息