我想知道清空IFrame内容的最佳方法是什么。 iframe包含来自其他域的HTML文档。 HTML文档可能包含带语音的视频。有时我需要在新窗口中打开该文档。在视频的情况下,首先关闭视频播放非常重要,这样用户就不会因多个音频的播放而感到沮丧。现在该文档来自另一个域,我无法执行swfobject.stopVideo()
,因此我执行了iframe.contentWindow.location = 'about:blank'
。这是一个好方法。
理想情况下,我想做一个iframe.contentDocument.write("<p>Close the popup window to resume playback.</p>");
。如何检测该窗口是否已关闭是另一个问题,我还没有答案(我会给予奖励积分,但这在SO上是不可能的。)
答案 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已经回答了上述问题。