我的简单Chrome扩展程序不起作用。具体来说,当我单击弹出窗口中的按钮时,不会显示任何警报。 这是我的manifest.json:
{"manifest_version": 2,
"name": "Getting started example",
"description": "This extension shows a Google Image search result for the current page",
"version": "1.0",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"activeTab",
"<all_urls>"
],
"web_accessible_resources": ["page.js"]}
我的popup.html:
<!DOCTYPE html>
<html>
<head>
<script src="popup.js"></script>
</head>
<body>
<button onclick = "a()">Alert!!</button>
</body>
</html>
我的popup.js:
function a(){
chrome.tabs.executeScript({code: "page.js"});
}
最后,我的page.js:
alert("Hi from an extension!!");
然而没有警报框出现。发生了什么事?
答案 0 :(得分:2)
onclick
代码)。将其移至单独的文件并使用例如addEventListener。弹出窗口控制台中应该显示错误,不要忘记始终检查它:右键单击弹出窗口,然后Inspect
。由于您正在使用"activeTab"
,因此无需"<all_urls>"
:
当用户调用扩展时,activeTab权限为当前活动选项卡提供扩展临时访问权限 - 例如,通过单击其浏览器操作。对选项卡的访问将持续到导航或关闭选项卡为止。
这可以作为许多用途的替代方案,但在安装过程中不会显示警告信息。
code
chrome.tabs.executeScript参数需要带有代码的文字字符串,而不是文件名。使用file
参数。
page.js
是一个内容脚本,它不是作为<script>
元素注入的,而是在"isolated world"中并行运行,
所以没有必要在&#34; web_accessible_resources&#34;中声明它。