chrome.browserAction.onClicked.addListener Not working



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

最新更新