8

我在页面正文中放置了一个 iframe,如下所示:

<iframe src="about:blank" onload="this.contentWindow.document.write('some text')">

它运行良好,onload 事件将 iframe 的内容替换为“一些文本”,仅此而已。

但在 Firefox 中,它会导致旋转轮“加载指示器”向您显示正在加载的页面永远不会消失。只有文本被插入到 iframe 中,所以没有其他内容在等待加载。当我从页面中删除 iframe 时,它​​消除了问题,所以我知道,是上述 iframe 导致了它。

它在 IE 和 Chrome 中正常工作。

现在,我可以这样做:

 <iframe src="about:blank" onload="this.contentWindow.document.write('some text'); t.contentWindow.stop();">

这解决了 Firefox 中的问题,但它阻止加载 iframe 中的任何图像(我在示例插入文本中不使用任何图像,但稍后将添加它们)。

那么,我该如何解决这个问题?

4

2 回答 2

15

确保调用 this.contentWindow.document.close(); 写入 iframe 后。

于 2014-09-12T00:43:01.773 回答
1

为什么首先使用同一 iframe 的加载事件触发对 contentWindow 的写入?

另一种方法只是创建一个 iframe 并将一些带有图像的内容加载到其中 - 按预期在 Firefox 上工作。没什么大不了。

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function createIframe(){
    var f = document.getElementsByTagName('body') [0].appendChild(document.createElement('iframe'));
    f.contentWindow.document.write('<img src="http://www.funimage.org/uploads/posts/2013-02/1361892989_1_14.jpg" />');
}
</script>
</head>
<body onload="createIframe()">

</body>
</html>
于 2013-09-25T22:21:38.967 回答