我是Chrome扩展程序的新手,但我想开始搞砸它们以获得它的乐趣。我知道总是显示page_action
图标是违反惯例的,但是为了学习,我想为每个标签显示它。
我一直在阅读,我很难搞清楚什么是弃用的,什么不是。文档似乎没有注意到某些方法已被弃用。
这是我到目前为止所做的一段时间 - 因为我已经搞错了Javascript所以请耐心等待;这都是非常简单的事情。
那么始终显示page_action
图标的最简单方法是什么?我是否接近正确的轨道?感谢。
的manifest.json
{
"manifest_version" : 2,
"name": "Hello World",
"version": "0.1",
"description": "Hello World",
"page_action": {
"default_icon": "images/blackWhite.jpg",
"default_title": "HW!"
},
"background": {
"scripts": ["scripts/background.js"]
}
}
background.js
chrome.tabs.getSelected(null, function(tab {
var id = tab.id
chrome.pageAction.show(id)
}))
答案 0 :(得分:2)
您的代码只会执行一次,而它应该在每次更新标签时执行。
这样做的一种方法是收听chrome.tabs.onUpdated
,就像在sample extension中一样。
chrome.tabs.onUpdated.addListener(function(tabId, change, tab) {
if (change.status == "complete") {
chrome.pageAction.show(tabId);
}
});
这将使页面操作在页面完成加载时显示。
如果您希望它更早出现,您可以,例如,在没有过滤条件的情况下收听onUpdated
,onCreated
和onReplaced
(如果您致电{not you not care) {1}}几次)。
修改:实际上,另一个好的组合是show()
(检测网址更改)和onUpdated
(检测标签更改)。
或者,您可以使用在onActivated
的所有页面中加载的内容脚本,并向背景发送消息以显示页面操作。