繁体   English   中英

如何立即更改Chrome扩展程序图标?

[英]How To Immediately Change Chrome Extension Icon?

我见过像Adblocks这样的插件,几乎可以立即更改标签,将插件图标切换为灰度。

我该如何实现? 目前,我正在通过content.js检测特定的URL,然后将消息发送到background.js来更改图标。 但这很慢,并且在页面加载后2-3秒后会发生。

我该怎么做呢? 我有一个必须更改图标的URL通配符的特定列表。

chrome.pageActionchrome.browserAction API允许扩展程序指定特定于标签的状态(按钮工具提示,图标,弹出窗口等)。

您可以使用chrome.webNavigation API来检测导航,也可以使用chrome.tabs API来检测标签状态变化。 将事件监听器绑定到任一API并更新回调中的徽章状态:

chrome.webNavigation.onCommitted.addListener(function(details) {
    chrome.browserAction.setBadgeText({
        text: 'whatever',
        tabId: details.tabId  // Important for tab-specific state!
    });
});

(阅读文档以查看details对象中的可用details 。)

默认情况下,您的内容脚本在"document_idle" ,表示“文档完全加载且JS引擎空闲后的一段时间”

如果您的“检测器脚本”不需要访问DOM来决定图标,则可以将其设置为在加载DOM之前"document_start"运行

"content_scripts": [
  {
    "matches": ["*://*.example.com/*"],
    "js": ["detect_url.js"],
    "run_at": "document_start"
  }
],

有关更多详细信息,请参见Content Script文档

或者,如果您具有"tabs"权限,则可以侦听相关的标签事件( onCreatedonUpdatedonReplaced )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM