2011-03-15 1112 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,這應該會大大減少你的資源負載。