Chromium:页面操作不起作用

时间:2012-12-29 08:16:02

标签: javascript google-chrome google-chrome-extension

我正在尝试制作我的第一个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)

1 个答案:

答案 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);