2011-04-16 139 views
3

我想知道什麼是清空IFrame內容的最佳方式。 iframe包含來自另一個域的HTML文檔。該HTML文檔可能包含帶語音的視頻。有時我需要在新窗口中打開該文檔。在視頻的情況下,我首先關閉視頻播放非常重要,以便用戶不會因播放多個音頻而感到不適。現在該文檔來自另一個域,我不能做一個swfobject.stopVideo(),因此我做了一個iframe.contentWindow.location = 'about:blank'。這是一個好方法嗎?我想做一個iframe.contentDocument.write("<p>Close the popup window to resume playback.</p>");。如何檢測該窗口是否關閉是另一個問題,對此我還沒有答案(我會給予獎勵積分,但這不可能)。什麼是清空IFrame內容的最佳方式

回答

1

這聽起來像是你只需要用你的服務器上的一個頁面替換iframe src,該頁面包含「如果你想知道發生了什麼,視頻正在彈出窗口中播放」文本。雖然約:空白should work清除框架,我建議如下:

iframe.src = 'now_playing_in_popup.html'; 

,將完成兩個清除它,並顯示您的消息。至於監控其他窗口關閉,我認爲這是上面ninjagecko回答。

1

如果您想在彈出窗口中給出消息,可以在iframe之外添加一條消息作爲單獨的同級元素,在視頻下方顯示類似標題。

由於您可以控制窗口的內容(例如,也許彈出窗口會加載包含iframe的yourwebsite/popupPlayer.html),您可以添加一個window.onunload觸發器,它可以傳回主頁面。或者,你可以做(​​不太優雅但更快速的代碼)var myWin = open('...');然後定期檢查myWin.closed屬性。

請注意,某些瀏覽器具有彈出式窗口攔截器,可能會與您正在做的事情發生奇怪的交互。

+0

我實際上想要(i)清除/清空iframe窗口(ii)如果可能,我想在空白iframe中顯示一個通知,例如*如果您想知道發生了什麼,則視頻正在播放彈出窗口* – 2011-04-16 11:55:51

+0

+1告訴我有關'.closed'屬性 – 2011-04-16 11:56:56

+0

啊,謝謝澄清。在這種情況下,我會建議僅在您設置的aboutrame上覆蓋一個元素:blank。首先,將iframe放入div中,將該div設置爲relative:然後在該div內,將iframe添加到iframe,並將其放置在iframe的頂部。 – ninjagecko 2011-04-16 12:04:41

相關問題