繁体   English   中英

chrome 扩展中的浏览器事件监听器不起作用

[英]browser event listener in chrome extensions is not working

单击工具栏中的扩展程序图标(在右上角)时,我试图执行一个函数。 我在 background.js 文件中添加了chrome.browserAction.onClicked.addListener但它不起作用。 请帮我。

最终,我的目标是通过我在 iframe 标记中使用的http://localhost:3000中的 HTML 元素设置不同的图标。 (检查 localhost:3000 中是否有特定元素 -> 设置图标)

我遵循的参考: https ://developer.chrome.com/extensions/samples#search:a%20browser%20action%20which%20changes%20its%20icon%20when%20clicked

我的代码如下。

清单.json

{
  "name": "test",
  "version": "1.0",
  "description": "test",
  "manifest_version": 2,
  "background": {
    "scripts": [
      "background.js"
    ],
    "persistent": false
  },
  "permissions": [
    "storage"
  ],
  "browser_action": {
    "default_title": "test",
    "default_popup": "popup.html"
  }
}

背景.js

chrome.browserAction.onClicked.addListener(() => {
  console.log('test for browser action');
});

popup.html

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
</head>

<body>
  <iframe src="http://localhost:3000" width="400" height="600"></iframe>
  <script src="./background.js" charset="UTF-8"></script>
</body>

</html>

在 manifest.json 中指定default_popup会禁用chrome.browserAction.onClicked事件。

解决方案:只需将代码放在 popup.js 中,然后像任何其他脚本一样在 popup.html 中加载它。

popup.html

  <script src=popup.js></script>
</body>
</html>

popup.js

console.log('This will run every time the popup is opened');

要检查弹出窗口及其控制台,请在弹出窗口内右键单击,然后单击“检查”。

请注意,您不需要后台脚本。 后台脚本在隐藏的后台页面中运行,因此绝不应在其他任何地方使用。 从 popup.html 中删除它。

PS您使用了错误的参考扩展名 通过 Ctrl-F 使用内置浏览器搜索来搜索popup.html不是页面上的搜索输入)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM