javascript – chrome.browserAction.onClicked.addListener不工作

我正在创建一个chrome扩展,但我的 browser action无法正常工作.

我的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:无法读取未定义的属性’onClicked’

命名脚本background.js并不会神奇地使它成为后台脚本!

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

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

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

相关文章
相关标签/搜索