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

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

我正在创建一个 chrome 扩展,但是我的 browser action不工作。

我的 list .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);

我收到的错误是

未捕获的类型错误:无法读取未定义的属性“onClicked”

最佳答案

将脚本命名为 background.js 并不能神奇地使其成为后台脚本!

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

点击按钮等事件的监听器应该在一个中央位置完成;这就是 background page 的目的(更好的是 event page )。你应该这样声明你的脚本,并广播一个message如果需要,请添加到内容脚本。

总而言之,请阅读Architecture Overview小心点,对你有很大帮助。

关于javascript - chrome.browserAction.onClicked.addListener 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27377459/

相关文章:

google-chrome - 如何使用chrome.sockets.udp API进行UDP广播?

javascript - 在 Angular 分量中使用 'require'

javascript - 为什么我在尝试访问 $http var 时会收到此错误?

php - json第一个索引值在jquery中获取

html - 当 chrome 15 中设置了边框半径时边框不出现

javascript - Chrome HTML document.execCommand ('inserthtml' 插入下表单元格

javascript - 如何将 React 应用程序作为 Gmail 插件运行?

javascript - 在 chrome/Alternatives 中,removeAllRanges 速度慢吗?

jquery - 如何使用 jquery 制作按钮后翻的动画?

javascript - jQuery UI 使用多个 JSON 源自动完成多个输入控件