2011-03-15 1120 views
0

我正在创建一个将音乐播放器加载到第二个窗口的音乐播放网站。这个想法是,用户可以浏览主页上的歌曲库,同时能够将歌曲添加到第二页的播放列表中。使用applicationCache保留对子窗口的引用

当在理想的世界中浏览使用AJAX调用的库时,此工作正常,但用户还可以导航到网站中的不同页面,并仍然可以访问播放器。

我开始认为这是不可能的?我研究过存储窗口引用(但它们不能被序列化),我也尝试在子窗口中重置父项中的子引用(这是否合理?)。

我已经解决了这个解决方案:子窗口每隔100毫秒在其开启器上调用setChild方法。这种方式正如我所愿,不幸的是,它看起来像是一种巨大的资源浪费,我仍然认为必须有更好的方法。

,我发现了一个解决方案,在这里一个类似的问题:

Retrieve child window reference after refresh

,但我无法找到有关applicationCache足够的信息。我可以在卸载时保存对缓存的引用,然后从其他页面重新加载它吗?

感谢和文本壁遗憾

+0

您的解决方案让孩子定期检查父级,以确定是否需要重新创建链接可以在所有现代浏览器(甚至是IE7)上运行。我知道,因为我也是。 HTML5的东西非常酷,但在旧版浏览器中无法使用。 – Pointy 2011-03-15 12:16:21

回答

2

我还没有验证这个解决办法,但你应该能够通过进行新的呼叫window.open并提供链接一个空字符串,以恢复和参考指定与原始调用window.open()相同的窗口名称。

至少你可以做500ms而不是100,这应该会大大减少你的资源负载。