chrome.browserAction.onClicked.addListener不工作

时间:2014-12-09 11:08:24

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

我正在创建Chrome扩展程序,但我的browser action无效。

My Manifest.jason

 {
    "name": "TypoSaurus",
    "version": "0",
    "description": "TypoSaurus extension",
    "background": {
        "page": "background.html"
    },
    "manifest_version": 2,
    "browser_action": {
        "name": "TypoSaurus",
        "icons": ["icon.png"],
        "default_icon": "icon.png"
    },
    "content_scripts": [{
            "js": ["jquery-2.0.2.min.js", "background.js"],
            "css": ["customStyles.css"],
            "matches": ["http://*/*", "https://*/*"]
        }],
    "permissions": ["<all_urls>"]
}

和我的background.js

function typo (tab) {

  alert('test');
}

chrome.browserAction.onClicked.addListener(typo);

我收到的错误是

未捕获的TypeError:无法读取属性&#39; onClicked&#39;未定义的

1 个答案:

答案 0 :(得分:8)

命名脚本background.js并不会神奇地将其作为后台脚本!

它仍然在您的清单中定义为内容脚本,内容脚本具有severely restricted access to Chrome API。这会导致您遇到的错误。

点击按钮等事件的听众应该从一个中心位置完成;这是background page的目的(更好的是,event page)。您应该声明您的脚本,并在需要时向内容脚本广播message

总而言之,请仔细阅读Architecture Overview,它会对您有所帮助。