我开始使用Chrome扩展程序。
我的扩展程序有2 content_scripts
,它们在页面加载时执行。我想从其中一个JS文件中为我的浏览器操作添加一个onClicked
处理程序。
基本上我想做的是chrome.browserAction.onClicked.addListener
但是我在类似的问题中读到这只能在弹出式html文件中起作用。我没有使用弹出文件,因为我目前不需要一个,我需要我的JS在全局范围内运行(因为没有default_popup
)。
这是我的manifest.json
:
{
"manifest_version": 2,
"name": "Foo",
"description": "Foo description.",
"version": "0.0.0.1",
"permissions":[
"tabs", "http://*/*", "https://*/*"
],
"browser_action": {
"default_icon": "icon.png"
},
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["jquery1.9.1.min.js", "foo.js"]
}
]
}
很抱歉,但我的谷歌搜索技巧无法找到如何做到这一点。有没有办法将onClicked
处理程序附加到我的浏览器操作中,还是需要一个html弹出窗口?
答案 0 :(得分:5)
决定将我过长的评论移到答案上。
如果你定义了一个弹出窗口,那么onClicked
事件永远不会被触发,但没有一个就可以正常工作。只需将处理程序弹出到您的后台页面即可,它应该可以正常工作。请注意,无法从chrome.browserAction
访问chrome.*
以及几乎所有其他content script
API,因此您需要使用background
或{{ 3}}页面。