javascript - chrome.pageAction.show() 在 tabs.onCreated 监听器中不起作用

标签 javascript json google-chrome google-chrome-extension

background.js:

 chrome.tabs.onCreated.addListener(function(tab) {

    chrome.pageAction.show(tab.id);//Doesn't work...icon is still grey

 });

这是我的扩展代码的一部分。我希望每个新选项卡在创建时都显示页面操作。不幸的是,chrome.pageAction.show() 不起作用。每次我创建一个新标签时,它的图标都是灰色的。

然而令我惊讶的是,如果我从控制台调用 chrome.pageAction.show(),它会完美运行。

list .json

{
  "name": "show Page Action",
  "description": "show icon in all tabs",
  "version": "1.0",
  "background": {
    "scripts": ["jquery-3.1.1.min.js", "background.js"]
  },
  "page_action": {
    "default_icon": "icon_true.png"
  },
  "manifest_version": 2
}

最佳答案

pageAction API 是基于 URL 的,因此您需要使用 tabs.onUpdated,它在 onCreated 之后执行,具有不同的参数:

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    if (changeInfo.url) {
        chrome.pageAction.show(tabId);
    }
});

不要忘记在 manifest.json's "permissions" 中添加 "tabs" .

关于javascript - chrome.pageAction.show() 在 tabs.onCreated 监听器中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40255818/

相关文章:

javascript - 使用 IndexedDB 创建多个对象存储时,Safari 7.1 中出现 UnknownError

javascript - 如何创建一个空白网站文件来练习 Javascript?

javascript - 使用 node.js 启用 Couchbase N1QL 引擎

java - 使用 GSON 将 Hashmap 转换为 JSON

javascript - 更改浏览器选项卡会意外触发焦点事件,尤其是在 Google Chrome 中

javascript - 在具有完整路径的树中查找匹配节点

php - 我想将选定的选项从一个文本框传递到第二个文本框

javascript - 将 JSON 字符串转换为 JSON 对象,这样我就不需要更改基础 jquery.dataTables.js

html - Firefox 和 Chrome 中的绝对定位问题

javascript - Chrome 消息传递。 Uncaught Error : Error connecting to extension