1

让我对 IE 感到困扰的一件事是,当它使用 iframe 加载页面时,它会等到 iframe 完成加载后才会呈现页面。相比之下,Firefox 将在 iframe 加载时呈现所有其他页面元素,如果 iframe 需要很长时间才能加载,这非常好,因为它会向用户提供页面正在运行的一些反馈。它还允许您执行诸如在框架加载时显示“iframe 加载”消息并将其换出 iframe 加载的操作。

所以,我想知道是否有人找到了解决方法。理想情况下,我希望看到一个跨浏览器解决方案,在页面上加载 iframe 时显示进度条。除此之外,我会采用一种实现 iframe 的方法,该方法强制 IE 首先呈现页面然后加载 iframe。

我已经看到了几个有趣的 jquery 进度条,例如: http: //plugins.jquery.com/project/jQueryProgressBar

但是......(如果我在这里错了,请纠正我,因为我的理解是不稳定的)......在我看来,jquery 栏只在 DOM 加载后呈现。在 IE 中,直到加载 DOM 后才会显示 iframe 内容,因此此时显示进度条是无关紧要的。

我还尝试将 iframe src 设置为 loading.htm,然后 onload 将 src 切换到我想要的内容。遗憾的是,在最终内容页面出现之前,IE 仍然不会呈现页面(对我来说似乎很奇怪)。

帮助我stackoverflow,你是我唯一的希望。

4

2 回答 2

2

如果您要使用 XmlHttpRequest 加载页面,然后在加载时替换文档的内容,该怎么办?

<!-- jQuery example: -->

<div id='content'>Loading...</div>

<script type='text/javascript'>
$("#content").load(url);
</script>
于 2008-11-17T20:11:19.753 回答
1

您可以在父窗口加载后使用 JavaScript 设置 iframe 的位置。

<body onload="document.getElementById('myIframe').location='someurl';">
    <iframe id="myIframe">
</body>

将是最基本的方法。

于 2008-11-17T20:23:44.033 回答