我正在尝试制作我的第一个 chrome 扩展,我希望我的扩展只出现在特定页面上,所以我使用 page_action
。
list .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)
最佳答案
为此,您需要有一个后台脚本来监听选项卡更新。您应该像这样更新您的 list :
{
"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);
关于javascript - Chrome : Page action not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14079943/