我正在创建一个 chrome 扩展程序,但我的浏览器操作不起作用。
我的清单.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>"]
}
和我的背景.js
function typo (tab) {
alert('test');
}
chrome.browserAction.onClicked.addListener(typo);
我收到的错误是
未捕获的类型错误:无法读取未定义的属性"onClicked"
将脚本命名background.js
并不能神奇地使其成为背景脚本!
它仍然在您的清单中定义为内容脚本,内容脚本严重限制了对 Chrome API 的访问权限。这会导致您遇到的错误。
像点击按钮这样的事件的侦听器应该从一个中心位置完成;这是背景页面的目的(更好的是事件页面)。您应该这样声明您的脚本,并在需要时向内容脚本广播一条消息。
总而言之,请仔细阅读架构概述,它会对您有很大帮助。
background.html
文件中添加脚本标签,如下所示。
<script src="background.js"></script>
通过这种方式,您可以使用后台脚本。
当前代码存在问题
-
chrome.browserAction.onClicked
仅在后台脚本中工作。
(内容脚本无权访问此内容) - 现在,您的
background.js
文件正在用作内容脚本,因为您在数组中提到了content_scripts
。