我正在开发一个谷歌扩展来播放一组歌曲。该扩展程序有一个弹出窗口来进行音量控制。我使用 jPlayer 播放歌曲。
我面临两个问题:
- 如果弹出窗口关闭,音乐停止(因为播放器的代码在弹出窗口中。我怎样才能继续在后台播放音乐?
- 弹出窗口关闭时如何记住变量?例如,假设我有一个变量
status
,它指示播放器的当前状态(播放/停止)。问题是,由于变量在弹出窗口关闭时被销毁,我如何在弹出窗口之间记住它们
我正在开发一个谷歌扩展来播放一组歌曲。该扩展程序有一个弹出窗口来进行音量控制。我使用 jPlayer 播放歌曲。
我面临两个问题:
status
,它指示播放器的当前状态(播放/停止)。问题是,由于变量在弹出窗口关闭时被销毁,我如何在弹出窗口之间记住它们使用localStorage
(或chrome.storage
)保存数据。
另一种选择是将消息传递到后台页面。这通常可以使用消息传递来完成。在弹出窗口中,使用起来要容易得多chrome.extension.getBackgroundPage()
:
// popup.js:
var background = chrome.extension.getBackgroundPage();
// On load?
var data = background.saved_data;
// ... Later, when data changes, update data:
background.saved_data = data;
以下是在 Chrome 扩展程序的后台页面中使用 chromeless Youtube 播放器播放视频的示例:https ://stackoverflow.com/a/9379277/938089 (包括所有文件)。