2011-04-16 104 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

相关问题