页面操作弹出窗口未显示

时间:2021-06-19 13:26:03

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

因此,我使用了一个页面操作,该操作仅在我观看 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 函数之外来使页面操作始终显示,并且可以正常工作,弹出窗口按预期显示。我该如何解决这个问题?

编辑:问题已修复,请阅读答案。

1 个答案:

答案 0 :(得分:0)

我通过阅读有关页面操作的更多信息并意识到我需要使用 chrome.declarativeContent 解决了这个问题。文档中定义何时显示页面操作的规则:Define rules for activating the extension...