[英]Chrome page action not open popup on click
我只有在访问某个网站时才使用此代码激活扩展程序。 我注意到扩展程序图标将始终可点击,并且如果 url 不符合设置的条件,并且当访问所需的网站并且 url 匹配时,扩展程序图标将不会变灰,如果用户单击扩展程序图标,则不会打开弹出窗口。 我该如何解决?
chrome.runtime.onInstalled.addListener(function() {
chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
chrome.declarativeContent.onPageChanged.addRules([
{
conditions: [
new chrome.declarativeContent.PageStateMatcher({
pageUrl: { hostEquals: 'www.example.com/video/*', schemes: ["https"] },
})
],
actions: [ new chrome.declarativeContent.ShowPageAction() ]
}
]);
});
});
chrome.pageAction.onClicked.addListener( () => {
chrome.windows.create({
url: chrome.runtime.getURL('popup.html'),
width: 500,
height: 295,
type: 'popup'
});
});
您的hostEquals
规则永远不会匹配任何内容,因为根据文档,它会与 URL 的主机部分进行比较,例如简单的www.example.com
所以它不能有/
或*
。 请注意, chrome.declarativeContent 使用自己的过滤系统,它不支持 content_scripts 或 webRequest 使用的任何常用匹配模式。
解决方案1:
{ hostEquals: 'www.example.com', pathPrefix: '/video/', schemes: ['https'] }
解决方案2:
{ urlPrefix: 'https://www.example.com/video/' }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.