我有这个代码来更改我的图标,但它只有在我点击它时才有效。如何在网页加载后立即更改图标?
document.addEventListener('DOMContentLoaded', function () {
chrome.browserAction.setIcon({path: 'different_icon.png'});
});
答案 0 :(得分:2)
您需要将消息传递到后台页面并在那里更改图标。例如,您的清单文件将包含此内容脚本:
"content_scripts": [
{
"matches" : ["<all_urls>"],
"js" : ["content.js"],
"run_at": "document_end"
}
],
如您所见,它在文档加载完成后运行。您的内容脚本将消息传递到后台页面:
chrome.runtime.sendMessage({changeIcon: true});
最后,您的背景页面会收到消息并更改图标:
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.changeIcon) {
chrome.browserAction.setIcon({path: 'different_icon.png'});
}
}
);