Vol*_*il3 1 javascript google-chrome-extension
是否可以在页面加载事件上更改按钮背景颜色,但到目前为止我根本找不到任何此类方法.如果不可能,那么我很乐意使用一些在页面加载后加载的预定义图像.
我尝试了以下内容,没有成功:
的script.js
// chrome.browserAction.setIcon("red.png");
chrome.browserAction.setIcon({path:'red.png'});
Run Code Online (Sandbox Code Playgroud)
的manifest.json
{
"name": "Domain Colors",
"version": "1.0",
"manifest_version": 2,
"content_scripts": [{
"matches": ["http://*/*"],
"js": ["script.js"]
}],
"permissions": [ "tabs", "http://*/*" ],
"browser_action": {
"default_title": "Colry",
"default_icon": "blue.png"
}
}
Run Code Online (Sandbox Code Playgroud)
要使用browserActionAPI,需要后台页面.如果要保留当前控制流(通过内容脚本更新图标),则需要传递消息.这是最低限度的:
// script.js
chrome.extension.sendMessage('');
// background.js
chrome.extension.onMessage.addListener(function(message, sender) {
chrome.browserAction.setBadgeBackgroundColor({
color: 'red',
tabId: sender.tab.id
});
});
Run Code Online (Sandbox Code Playgroud)
清单文件需要一个额外的条目:
"background": {
"scripts": ["background.js"]
}
Run Code Online (Sandbox Code Playgroud)
您不需要内容脚本来检测页面加载.可以使用单个事件侦听器(在后台页面中):
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo) {
if (changeInfo.status === 'loading') {
chrome.browserAction.setBadgeBackgroundColor({
color: 'red',
tabId: tabId
});
}
});
Run Code Online (Sandbox Code Playgroud)
仔细查看文档chrome.browserAction.setBadgeBackgroundColor.使用browserAction API也有很多例子,你应该能够通过查看这些示例来获得一个可行的扩展.
| 归档时间: |
|
| 查看次数: |
2147 次 |
| 最近记录: |