我希望除docs.google.com上的页面外,所有页面上的Chrome扩展图标都被禁用(变灰)。这是我在background.js中的代码。
'use strict';
chrome.runtime.onInstalled.addListener(function() {
chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
chrome.declarativeContent.onPageChanged.addRules([{
conditions: [new chrome.declarativeContent.PageStateMatcher({
pageUrl: { urlContains: 'docs.google' },
})
],
actions: [new chrome.declarativeContent.ShowPageAction()]
}]);
});
});
From the documentation for pageActions this should result in my extension icon being gray on all pages except for ones that have docs.google in the URL. But the icon is active (NOT grayed out) on all pages. Tapping it on non docs.google pages results in it not doing anything, but I want it to be grayed out in the first place.
有什么想法吗?
3条答案
按热度按时间efzxgjgh1#
这是一个bug in Chrome,到目前为止还不清楚它是否可以修复。
同时,您可以自行维护图标:
1.在任何图像编辑器中制作图标的灰度版本并单独保存。
action
而不是page_action
yqyhoc1h2#
如果您使用manifest版本2,只需在page_action中声明彩色图标,而不是灰色图标。
然后图标会在URL中显示为灰色,表示没有权限和匹配。您可以在pageAction/#manifest中查看说明。
但是在manifest v3中,上面的配置似乎不再起作用。
kpbwa7wx3#
Chrome在其文档中记录了这种行为:https://developer.chrome.com/docs/extensions/reference/action/#emulating-pageactions-with-declarativecontent。下面描述如何在manifest v3中实现它。
这将需要
manifest.json
中的declarativeContent
权限