如何仅更改带有弹出窗口的活动标签的 Chrome 扩展程序图标?

大恶魔

我正在制作一个简单的 chrome 扩展,可以检查当前活动选项卡的 HTML 标签。

单击扩展图标时,它显示 default popup page(popup.html)

它将根据结果更改扩展图标并在弹出页面上显示结果。

我正在使用chrome.browserAction.setIcon({path: imgSrc})代码来更改扩展程序的图标。

但问题是,此代码更改所有其他选项卡上的扩展图标。

我只想在单击扩展图标的当前活动选项卡上更改它。

我知道我应该获取当前选项卡 id 来更改当前活动选项卡的 ext 图标。

对于此代码 chrome.browserAction.setIcon({tabId: tab.id, path: imgSrc})

但不知道如何获取当前的活动标签 ID popup.js,而不是background.js

有人可以帮助我吗?


这是我的文件

manifest.json声明default_popup

{
    "name": "Tag Checker for ChromeExtension",
    "version": "1.0.0",
    "description": "Tag Checker for ChromeExtension",
    "manifest_version": 2,
    "permissions": [
        "activeTab",
        "storage"
    ],
    "browser_action": {
        "default_icon": {
            "16": "images/browserAction/best.png",
            "32": "images/browserAction/normal.png",
            "48": "images/browserAction/bad.png",
            "128": "images/browserAction/abnormal.png"
        },
        "default_popup": "popup.html"
    }
}



弹出窗口.html

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>Tag Checker</title>
    <script src="/js/popup.js"></script>
</head>
<body>
    <span id="results"></span>
</body>
</html>



弹出窗口.js

chrome.tabs.executeScript({file: '/js/injection.js'});



注入.js

//checking tag codes will be implemented here

var imgSrc = 'images/browserAction/48.png';
chrome.browserAction.setIcon({path: imgSrc});

(function() {
  document.querySelector('#results').innerText = 'DONE';
})();
哇哦

内容脚本做不到。
将两行(imgSrc 和 setIcon)移动到 popup.js 并指定 tabId

popup.js:

chrome.tabs.query({active: true, currentWindow: true}, ([tab]) => {
  chrome.browserAction.setIcon({tabId: tab.id, path: 'images/browserAction/48.png'});
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何更改 Chrome 扩展程序的商店图标?

chrome扩展程序图标未更改

Chrome扩展程序图标没有颜色

更改带有Chrome扩展程序的网站图标?

chrome扩展程序动态更改图标(无需单击)

Chrome扩展程序,扩展程序图标上带有内容脚本

chrome扩展程序-如何打印值而不是图标

如何知道我的Chrome扩展程序的徽章图标是Shift单击的?

如何通过单击Chrome扩展程序图标打开mailto链接?

如何为Retina Mac的浏览器指定Chrome扩展程序图标(弹出图标)

Chrome扩展程序图标清单

带有SVG图标的Chrome扩展程序(chrome.browserAction.setIcon)

如何缩小Chrome扩展程序的弹出窗口

Google Chrome扩展程序-同时在所有标签上切换图标?

如何仅通过单击图标或按钮来导致Chrome扩展程序关闭

单击chrome扩展程序图标时,在新窗口中打开当前页面的URL

单击工具栏图标时,在新标签页中打开Chrome扩展程序

Chrome扩展程序:从弹出窗口获取当前标签

如何配置Chrome浏览器以多行而不是一列显示扩展程序图标?

如何在Chrome扩展程序中获得2个收藏夹图标

Google Chrome扩展程序:如何在地址栏中添加图标?

Google Chrome 扩展程序不显示图标

Chrome 扩展程序图标未出现

Chrome扩展程序弹出窗口不再显示

Chrome扩展程序弹出窗口无法打开

禁止关闭Chrome扩展程序弹出窗口

Chrome 扩展程序的浏览器操作,带有注入/删除 CSS 的弹出窗口

为什么我的Chrome扩展程序图标在Chrome Web Store以外的所有地方都可以使用?

如何在Chrome扩展程序中仅显示一次弹出窗口?