[英]Chrome Extension: How to send data from Panel Window to Popup?
我正在使用Chrome扩展程序,该扩展程序在单击扩展程序图标后会弹出一个窗口( popup.html
),其中包含用于视频播放的按钮。 单击该按钮后,将打开另一个按钮,该按钮是使用type panel
window.create
创建的。 在popup.html
上单击“播放”按钮后, popup.html
执行以下操作:
mypanel.html
window.create
创建新窗口。 它使用panel.js
进行ajax调用和DOM更改功能。 现在的事情是,我通过panel.js
AJAX调用获取的数据。 我想将该数据发送回pop.html
本身正在使用文件popup.js
。 如何将数据从面板窗口发送回弹出窗口 ?
消息传递文档中描述了扩展的各个部分之间进行通信的标准方法。
但是,您需要记住,一旦关闭弹出窗口,它就会被卸载,并且JavaScript上下文也将随之被破坏。 因此,它在关闭时无法接收消息,并且在重新打开时将丢失所有状态。
有两种解决方案:
您可以使用后台页面来保持状态(如果设置为持久状态)并在扩展的各个部分之间路由消息,例如,打开时弹出窗口可以请求当前状态。 这是一个过时的解决方案。
如果您只需要传递/保留一些数据,则可以轻松地使用chrome.storage.local
进行操作。 您可以使用panel.js
保存数据,并通过chrome.storage.onChanged
事件对更改做出反应。 额外的好处是,当弹出窗口重新打开时,它可以简单地读取存储以建立其初始状态。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.