Chrome 扩展程序显示“想要访问此网站”

时间:2021-03-03 22:23:25

标签: javascript google-chrome google-chrome-extension

我的 Chrome 扩展程序的 manifest.json 包含以下部分:

"permissions": [
  "activeTab",
  "webNavigation",
  "webRequest",
  "webRequestBlocking",
  "*://example.com/*",
  "*://*.example.com/*"
],

"content_scripts": [
    {
      "run_at": "document_start",
      "matches": [
        "*://example.com/*",
        "*://*.example.com/*"
      ],
      "all_frames": true,
      "match_about_blank": true,
      "js": [ "scripts/init.js" ]
    }
  ]

所以它只在单个域名上运行(例如) example.com


我的 background.js 脚本包含以下代码:

async function setIcon(tabId, path) {
  // based on several parameters show the icon in different colors
  // calls chrome.browserAction.setIcon with customized imageData
}

chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
  if (changeInfo && (changeInfo.status === 'loading') && (tabId === tab.id)) {
    setIcon(tabId, (tab.url != undefined) ? '../icons/active/scalable.svg' :
                                            '../icons/inactive/scalable.svg');
  }
});

根据选项卡的匹配 URL 在灰色(非活动)和彩色(活动)之间切换扩展图标。


当标签显示匹配 URL 文档的内容时,该图标是彩色的(活动的),当我将鼠标悬停在该图标上时,工具提示显示“可以访问此网站”。

当标签显示不匹配 URL 文档的内容时,该图标呈灰色(非活动状态),当我将鼠标悬停在该图标上时,工具提示显示“想要访问到这个网站”。

为什么工具提示说扩展程序想要访问不匹配的站点(例如 https://stackoverflow.com,但事实并非如此?这肯定会让用户感到困惑。我可以阻止显示此类消息吗?

1 个答案:

答案 0 :(得分:1)

我找到了导致此消息的原因。

这是 webNavigation 权限。添加此权限后,会显示这样的消息。