1

我正在尝试制作我的第一个 chrome 扩展,我希望我的扩展只出现在特定页面上,所以我正在使用page_action.

清单.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>

测试.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 函数。

那么,我在这种方法中哪里出错了。

铬版 24.0.1312.2 Ubuntu 12.04 (165266)

4

1 回答 1

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);
于 2012-12-29T08:18:31.983 回答