gpt4 book ai didi

google-chrome-extension - 如何从弹出窗口与 background.js 交互?

转载 作者:行者123 更新时间:2023-12-04 02:32:08 24 4
gpt4 key购买 nike

有没有办法在popup.html(或popup.js)和后台脚本之间传递信息?

我希望弹出窗口显示来自用户帐户的信息或允许他们登录,但让 background.js 处理身份验证和其他逻辑。我在 list 中声明了 background.js,但似乎根本没有迹象表明它正在被使用。

编辑:如果我把这一切都错了,并且有更好的方法来做到这一点,那也很棒。

最佳答案

注意后台页面和弹窗在同一个进程(扩展进程),所以一个页面可以获取另一个页面的DOM窗口,然后直接调用函数或设置变量。例如弹窗可以调用chrome.extension.getBackgroundPage修改背景:

chrome.extension.getBackgroundPage().variable = 42;

后台页面可以调用 chrome.extension.getViews获取弹出窗口:
var popups = chrome.extension.getViews({type: "popup"});
if (0 < popups.length)
popups[0].variable = 42;

设置共享变量的另一种方法是使用传统的 DOM API,因为每个扩展都有一个虚假的来源(例如“eakjnniffhfegdpfehmnpcmjiameincp”)。所以当你修改 localStorage , document.cookie ,或者后台的IndexedDB,可以在弹窗中读回。

也就是说,即使在扩展过程中的页面内,您可能仍希望使用消息传递 API,因为它可能会使您的代码更加统一。消息传递是与内容脚本通信的唯一方式。

关于google-chrome-extension - 如何从弹出窗口与 background.js 交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9537435/

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