因此,我使用了一个页面操作,该操作仅在我观看 Youtube 视频时显示,它可以正常工作并将图标显示为活动状态。但是,当我单击扩展程序时,弹出窗口不会打开。我已在清单文件中指定了 default_popup
。
我使用的内容脚本向显示页面操作的后台脚本发送消息。代码如下:
//background.js
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.activate == "true") {
chrome.pageAction.show(sender.tab.id);
}
});
//activate.js
chrome.runtime.sendMessage({ activate: "true" });
//manifest.json
"page_action": {
"default_popup": "/Pages/index.html"
},
"background": {
"scripts": ["background.js"]
},
"content_scripts": [{
"matches": ["https://www.youtube.com/watch*"],
"js": ["activate.js"]
}]
此外,我还尝试通过将 chrome.pageAction.show(tab.id)
放在 onMessage 函数之外来使页面操作始终显示,并且可以正常工作,弹出窗口按预期显示。我该如何解决这个问题?
编辑:问题已修复,请阅读答案。
答案 0 :(得分:0)
我通过阅读有关页面操作的更多信息并意识到我需要使用 chrome.declarativeContent
解决了这个问题。文档中定义何时显示页面操作的规则:Define rules for activating the extension...