我的 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),但事实并非如此?这肯定会让用户感到困惑。我可以阻止显示此类消息吗?
答案 0 :(得分:1)
我找到了导致此消息的原因。
这是 webNavigation
权限。添加此权限后,会显示这样的消息。