我正在学习如何扩展Google Chrome并遇到以下问题:
我有以下清单文件:
{
"name": "My First Extension",
"version": "1.0",
"description": "The first extension that I made.",
"background_page": "background.html",
"browser_action": {
"default_icon": "icon.png",
"popup": "popup.html"
},
"permissions": [
"tabs",
"http://*/*",
"https://*/*"
]
}
我的background.html文件只是在页面中注入了一些简单的JavaScript:
<script>
// Called when the user clicks on the browser action.
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(null, {code:"alert(\"hi from background CODE\");"});
});
</script>
我的popup.html文件只是简单的HTML:
<body>
Sup Playa
</body>
来自background.html的对话框永远不会显示。 popup.html按预期运行。
但是,当我从清单文件中注释掉popup.html时,background.html中的脚本可以正常工作。
我做错了什么?为什么对话框和弹出窗口都不显示?
答案 0 :(得分:4)
正如docs中所述:
如果浏览器操作有弹出窗口,
onClicked
事件将不会触发。
因此,如果您将任何html文件分配给弹出窗口"popup": "popup.html"
(而不仅仅是没有正文的按钮),则不会触发onClicked
事件。
如果您想在每次打开时执行某些操作,您可以将代码直接放入popup.html
(它具有与后台页面相同的权限):
chrome.tabs.executeScript(null, {code:"alert(\"hi from background CODE\");"});