gpt4 book ai didi

javascript - 如何拥有后台脚本和类似于默认弹出窗口的东西?

转载 作者:行者123 更新时间:2023-11-29 16:09:55 25 4
gpt4 key购买 nike

因此,我知道您不能同时拥有后台脚本和默认弹出窗口。如果是这样,我怎样才能拥有类似于默认弹出窗口的内容(当您单击扩展程序的图标时会出现一些简单的 HTML)并让后台脚本修改该弹出窗口的内容?

这是 manifest.json

"browser_action": {
"default_title": "Mark this position!",
"default_icon": "icon.png"
},
"background": {
"scripts": ["background.js"],
"persistent": false
},
"content_scripts": [
{
"matches": [
"http://*/*",
"https://*/*"
],
"js": ["content.js"]
}
],

最佳答案

您绝对可以同时拥有弹出窗口(即 default_popup 设置)和背景页面。背景页面将有自己的生命周期("persistent": falseEvent page )并且弹出窗口只要打开就会存在。

我想您的困惑源于您不能同时拥有弹出窗口和 chrome.browserAction.onClicked 监听器这一事实。

这是事实,但还有其他方法可以告诉您的后台页面弹出窗口已打开。

您可以从弹出窗口向后台页面发送消息:

// popup.js, should be included in the popup
chrome.runtime.sendMessage({popupOpen: true}, function(response) {
/* process response */
});

// background.js
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
if(message.popupOpen) {
/* do stuff */
sendResponse(response);
}
});

如果把上面的弹窗代码放在顶层,那么弹窗一打开,后台就会通知

虽然您可以直接从后台访问弹出窗口(参见 chrome.extension.getViews ),但建议您将 UI 逻辑移至弹出窗口本身并使用 Messaging 与后台通信如上所述并分享chrome.storage .

关于javascript - 如何拥有后台脚本和类似于默认弹出窗口的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31377325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com