如何在页面加载后立即更改默认图标?

时间:2013-06-16 22:35:30

标签: google-chrome-extension

我有这个代码来更改我的图标,但它只有在我点击它时才有效。如何在网页加载后立即更改图标?

document.addEventListener('DOMContentLoaded', function () {
  chrome.browserAction.setIcon({path: 'different_icon.png'});

});

1 个答案:

答案 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'});
        }
    }
);