清空IFrame上内容的最佳方法是什么?

时间:2011-04-16 11:32:56

标签: javascript html dom iframe

我想知道清空IFrame内容的最佳方法是什么。 iframe包含来自其他域的HTML文档。 HTML文档可能包含带语音的视频。有时我需要在新窗口中打开该文档。在视频的情况下,首先关闭视频播放非常重要,这样用户就不会因多个音频的播放而感到沮丧。现在该文档来自另一个域,我无法执行swfobject.stopVideo(),因此我执行了iframe.contentWindow.location = 'about:blank'。这是一个好方法。

理想情况下,我想做一个iframe.contentDocument.write("<p>Close the popup window to resume playback.</p>");。如何检测该窗口是否已关闭是另一个问题,我还没有答案(我会给予奖励积分,但这在SO上是不可能的。)

2 个答案:

答案 0 :(得分:1)

如果您想在弹出窗口中发送消息,可以在iframe之外添加一条消息作为单独的兄弟元素,在视频下方显示为标题。

由于您可以控制窗口的内容(例如,弹出窗口可能会加载包含iframe的网站/ popupPlayer.html),您可以添加一个window.onunload触发器,该触发器会与主页面进行通信。

或者,你可以做(​​不太优雅但代码更快)var myWin = open('...');然后定期检查myWin.closed属性。

请注意,某些浏览器有弹出窗口阻止程序,可能会与您正在进行的操作奇怪地进行交互。

答案 1 :(得分:1)

听起来你只需要将iframe src替换为服务器上的一个页面,该页面包含“如果你想知道发生了什么,那么视频现在正在弹出窗口中播放”文本。当 about:blank should work清除框架时,我建议如下:

iframe.src = 'now_playing_in_popup.html';

这将完成清除和显示消息。至于监视关闭的另一个窗口,我认为ninjagecko已经回答了上述问题。