chrome.browserAction.onClicked.addListener不工作

Bin*_*y C 4 javascript jquery google-chrome google-chrome-extension

我正在创建Chrome扩展程序,但我的浏览器操作无效.

我的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>"]
}
Run Code Online (Sandbox Code Playgroud)

和我的background.js

function typo (tab) {

  alert('test');
}

chrome.browserAction.onClicked.addListener(typo);
Run Code Online (Sandbox Code Playgroud)

我收到的错误是

未捕获的TypeError:无法读取未定义的属性'onClicked'

Xan*_*Xan 8

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

它仍然在您的清单中定义为内容脚本,内容脚本严格限制对Chrome API的访问.这会导致您遇到的错误.

点击按钮等事件的听众应该从一个中心位置完成; 这是后台页面的目的(更好的是,事件页面).您应该声明您的脚本,并在需要时向内容脚本广播消息.

总而言之,请仔细阅读架构概述,它将为您提供很多帮助.