javascript - Chrome 扩展 - 仅更改事件选项卡的 default_icon

标签 javascript google-chrome google-chrome-extension

我正在构建一个简单的扩展,它需要根据页面中是否存在 JS 变量来更改 default_icon。就这么简单,至少这个功能是这样。

我设法在这种情况下更改每个页面加载的图片,但我想更进一步,每当用户更改他关注的选项卡时,更改用户浏览器中所有加载选项卡的图片。 我在尝试仅更改事件选项卡的 default_icon 时遇到问题。

有人知道我应该如何做到这一点吗? (我还是编写 Chrome 扩展的初学者)

我的内容.js:

if (test == "OK") {
    // Setting OK Icon
    chrome.runtime.sendMessage({"message": "Existing"});
}
else if (test == "NOK") {
    // Setting NOK Icon
    chrome.runtime.sendMessage({"message": "Not existing"});
}

我的背景.js:

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    if( request.message === "Existing" ) {
        chrome.browserAction.setIcon({path:"OKicon.png"});
    }

    if( request.message === "Not Existing" ) {
        chrome.browserAction.setIcon({path:"NOKicon.png"});
    }
  }
);

最佳答案

那么,你应该看看 chrome.browserAction.setIcon documentation .

integer (optional) tabId

Limits the change to when a particular tab is selected. Automatically resets when the tab is closed.

正是所需要的!现在,选项卡 ID 为 reported in the sender parameter :

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    if( request.message === "Existing" ) {
        chrome.browserAction.setIcon({
            path:"OKicon.png",
            tabId: sender.tab.id
        });
    }

    if( request.message === "Not Existing" ) {
        chrome.browserAction.setIcon({
            path:"NOKicon.png",
            tabId: sender.tab.id
        });
    }
  }
);

关于javascript - Chrome 扩展 - 仅更改事件选项卡的 default_icon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28884898/

相关文章:

google-chrome - Chrome 开发者工具 : Mobile devices preview shows shrinked

google-chrome - 如何从 Chrome 扩展程序中获取设备名称(或主机名)?

Internet Explorer 中的 Javascript RegEx 问题

javascript - 未处理的拒绝错误。即使测试通过

javascript - ECMA-2015语法文法中的CoverInitializedName[yield]是什么

javascript - 为什么 style-loader 被用作 Webpack 的 ExtractSass 插件的后备?

css - Chrome 打印预览更改网页样式

javascript - Opera 和 Chrome 中的电子邮件验证问题

javascript - Chrome WebAPIchrome.webRequest.onBeforeSendHeaders 不更改传出请求中的参数

javascript - 每次我从 devtool 页面单击按钮时,如何执行内容脚本函数一次?