IE中iframe加载不一致的指示栏。

时间:2010-02-11 10:50:18

标签: javascript internet-explorer iframe progress-bar

我正在使用下面的代码结构进行演示,这是一个 jsp 页面。通常,网页完全加载需要3秒以上。

我已经注入了一个指示条(类似于cvi_busy),因此在页面完全加载之前会显示一些启用了javascript的栏。我使用iframe内的div进行此操作。在身体完全加载的那一刻,我将隐藏diviframe

我遇到的问题是指标栏没有始终如一地出现。当它加载时,有时指示器会出现,有时则不会出现。我使用的浏览器是IE。

<html>
 <body>
    <div id="loadImageBarDiv">
    <iframe style="width:100%;height:100%;"  frameborder="0" name="loadingFrame" src="jsp/Splash.html" id="loadIframe" allowTransparency="true"/>
    </div>

    //---- my presentation for the page over here.
    </body>
    <script language="javascript">
if(window.frames['loadingFrame']){
if(window.frames['loadingFrame'].xval){
window.frames['loadingFrame'].xval.remove();}
window.frames['loadingFrame'].width="0px";
window.frames['loadingFrame'].height="0px";
}
document.getElementById("loadImageBar").style.display="none";
</script>
</html>

1 个答案:

答案 0 :(得分:0)

如果你使用jQuery,这应该很容易修复。只是做:

<script language="javascript">
$(function() {
  if(window.frames['loadingFrame']){
  if(window.frames['loadingFrame'].xval){
  window.frames['loadingFrame'].xval.remove();}
  window.frames['loadingFrame'].width="0px";
  window.frames['loadingFrame'].height="0px";
  }
  document.getElementById("loadImageBar").style.display="none";
});
</script>

在页面的开始。 $(someFunction)是jQuery用于连接事件处理程序“onReady”的快捷方式,这听起来就是你想要的。