我正在创建一个 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/