我试图使一个函数执行时,单击工具栏中的扩展图标(在右上角)。我添加了chrome.browserAction.onClicked.addListener
在background.js文件,但它不工作。请帮助我。
最终,我的目标是在http://localhost:3000
中按HTML元素设置一个不同的图标,我在iframe标记中使用了该元素。(检查localhost:3000 -〉set icon中是否有特定的元素)
我所遵循的参考文献:https://developer.chrome.com/extensions/samples#search:a%20browser%20action%20which%20changes%20its%20icon%20when%20clicked
我的代码如下。
manifest.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');
});
弹出窗口.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>
1条答案
按热度按时间cpjpxq1n1#
在manifest.json中指定
default_popup
会禁用chrome.browserAction.onClicked
(MV 2)以及chrome.action.onClicked
(清单V3)事件。**解决方案:**只需将代码放在popup.js中,然后像popup.html中的任何其他脚本一样加载它。
popup.html
popup.js
要检查弹出窗口及其控制台,请右键单击弹出窗口内部,然后单击“inspect”。
请注意,您不需要后台脚本。后台脚本在隐藏的后台页面中运行,因此不应在其他任何地方使用。请从popup.html中删除它。
P.S.您使用了错误的reference extension。通过Ctrl-F使用内置的浏览器搜索来搜索
popup.html
(而不是页面上的搜索输入)。