我正在尝试制作我的第一个Chrome扩展程序,并希望我的扩展程序仅显示在特定页面上,因此使用page_action
。
的manifest.json
{
"name": "First",
"version": "1.0",
"manifest_version": 2,
"description": "First extension",
"page_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions" : [
"tabs"
]
}
popup.html
<html>
<head>
<script src="test.js"></script>
</head>
<body> Some other logic </body>
</html>
test.js
function check(tab_id, data, tab){
if(tab.url.indexOf("google") > -1){
chrome.pageAction.show(tab_id);
alert("inside");
}
chrome.tabs.onUpdated.addListener(check);
};
现在,在我打开google.com
时加载扩展程序后,图标没有出现,我的javascript函数也都没有被调用。
所以,我在这种方法中出错了。
Chromium版本24.0.1312.2 Ubuntu 12.04 (165266)
答案 0 :(得分:2)
要使其正常工作,您需要具有侦听制表符更新的后台脚本。您应该像这样更新您的清单:
{
"name": "First",
"version": "1.0",
"manifest_version": 2,
"description": "First extension",
"background": { "scripts": ["test.js"] },
....
此外,您在函数内部设置了侦听器,因此它永远不会被执行。
将其移出功能,它应该可以正常工作
function check(tab_id, data, tab){
if(tab.url.indexOf("google") > -1){
chrome.pageAction.show(tab_id);
alert("inside");
}
};
chrome.tabs.onUpdated.addListener(check);