0

我正在开发一个谷歌扩展来播放一组歌曲。该扩展程序有一个弹出窗口来进行音量控制。我使用 jPlayer 播放歌曲。

我面临两个问题:

  1. 如果弹出窗口关闭,音乐停止(因为播放器的代码在弹出窗口中。我怎样才能继续在后台播放音乐?
  2. 弹出窗口关闭时如何记住变量?例如,假设我有一个变量status,它指示播放器的当前状态(播放/停止)。问题是,由于变量在弹出窗口关闭时被销毁,我如何在弹出窗口之间记住它们
4

1 回答 1

1
  1. 不要在弹窗中嵌入播放器,放在后台页面中。然后,也避免了问题 2。
  2. 使用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 (包括所有文件)。

于 2012-07-31T21:06:30.267 回答