繁体   English   中英

Chrome扩展程序:如何将数据从面板窗口发送到弹出窗口?

[英]Chrome Extension: How to send data from Panel Window to Popup?

我正在使用Chrome扩展程序,该扩展程序在单击扩展程序图标后会弹出一个窗口( popup.html ),其中包含用于视频播放的按钮。 单击该按钮后,将打开另一个按钮,该按钮是使用type panel window.create创建的。 popup.html上单击“播放”按钮后, popup.html执行以下操作:

  • 启用DIV
  • 通过调用名为mypanel.html window.create创建新窗口。 它使用panel.js进行ajax调用和DOM更改功能。
  • 进行Ajax通话,获取数据并播放视频

现在的事情是,我通过panel.js AJAX调用获取的数据。 我想将该数据发送回pop.html本身正在使用文件popup.js 如何将数据从面板窗口发送回弹出窗口

消息传递文档中描述了扩展的各个部分之间进行通信的标准方法。

但是,您需要记住,一旦关闭弹出窗口,它就会被卸载,并且JavaScript上下文也将随之被破坏。 因此,它在关闭时无法接收消息,并且在重新打开时将丢失所有状态。

有两种解决方案:

  1. 您可以使用后台页面来保持状态(如果设置为持久状态)并在扩展的各个部分之间路由消息,例如,打开时弹出窗口可以请求当前状态。 这是一个过时的解决方案。

  2. 如果您只需要传递/保留一些数据,则可以轻松地使用chrome.storage.local进行操作。 您可以使用panel.js保存数据,并通过chrome.storage.onChanged事件对更改做出反应。 额外的好处是,当弹出窗口重新打开时,它可以简单地读取存储以建立其初始状态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM