【问题标题】:Change the Chrome extension icon更改 Chrome 扩展程序图标
【发布时间】:2013-05-31 01:50:01
【问题描述】:

我是 Google Chrome 扩展程序的新手,我已经为我们的网站创建了一个,用于检查您所在页面的内容,并根据它获取服务器的 ID(我们有一个带有 4 个 VM 的网络农场) .现在使用服务器 ID,我不想更改扩展图标以在此处显示号码。我试过使用:

chrome.browserAction.setIcon({
    path : folder + icons[2],
    tabId: tab.id
});

但我收到此错误:chrome.browserAction is not available: You do not have permission to access this API. Ensure that the required permission or manifest property is included in your manifest.json.

我已经尝试在谷歌上搜索错误并一直在搜索文档,但找不到导致此问题的原因...

【问题讨论】:

  • 您的清单中是否定义了browser_action?在您的清单中缺少它是我能想到的唯一会导致此类错误的事情(除了使用浏览器的 canary/dev/beta 版本之外)。
  • ` "browser_action": { "default_icon": "numbers/1green.png", "default_popup": "index.html" }` 是我所拥有的..
  • 我已经在开发模式和 Canary 上尝试了我的“普通”Chrome
  • 在哪里你试图运行这段代码?我希望它在后台页面中成功,在内容脚本中失败。我不确定浏览器操作或页面操作弹出窗口。
  • 确实在内容脚本中。我将文件声明移至background,但现在似乎什么也没发生。供参考;我的目标是根据我在浏览器中访问的页面内容更新图标。我没有执行任何后台任务来轮询数据库或任何内容并显示其中的结果。

标签: google-chrome google-chrome-extension google-chrome-devtools


【解决方案1】:
Unchecked runtime.lastError: Icon invalid.

以防万一任何人在更改 browserAction 图标时遇到上述错误,我需要澄清:并非所有尺寸的图像都支持,但 48x48 是有效的。

【讨论】:

    【解决方案2】:

    内容脚本无法访问大多数扩展 API。相反,您需要使用 message passing 让内容脚本警报通知后台页面需要完成的工作。

    你的内容脚本应该使用chrome.runtime.sendMessage发送消息,后台页面应该使用chrome.runtime.onMessage.addListener监听:

    内容脚本

    if(shouldChangeIcon) {
        // send message to background script
        chrome.runtime.sendMessage({ "newIconPath" : folder + icons[2] });
    }
    

    背景页面

    chrome.runtime.onMessage.addListener(
        function(request, sender, sendResponse) {
            // read `newIconPath` from request and read `tab.id` from sender
            chrome.browserAction.setIcon({
                path: request.newIconPath,
                tabId: sender.tab.id
            });
        });
    

    【讨论】:

    • 好的,有什么方法可以跟踪后台发生的事情吗?现在已经设置好了,但是图标没有改变。有一个在 background 中声明的 background.js 和一个在 content_script 中声明的 myscript.js。 myscript.js 中触发console.log() 的东西确实有效,但仍然是相同的图标..
    猜你喜欢
    • 1970-01-01
    • 2015-01-01
    • 2018-03-09
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    相关资源
    最近更新 更多