Jquery 加载内容后显示Iframe

Jquery 加载内容后显示Iframe,jquery,html,internet-explorer,iframe,Jquery,Html,Internet Explorer,Iframe,我正在使用来自外部源的Iframe,希望在页面(Iframe)完全加载后显示其内容 我有一个div在页面上覆盖一条消息“请稍候”,但它不能正常工作。DIV在Iframe完全加载之前隐藏

我正在使用来自外部源的Iframe,希望在页面(Iframe)完全加载后显示其内容
我有一个div在页面上覆盖一条消息“请稍候”,但它不能正常工作。DIV在Iframe完全加载之前隐藏<有没有更好的方法?(浏览器:IE)

代码:

<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>

<script type="text/javascript">
 document.getElementById("hideAll").style.display = "block"; </script> 

<script type="text/javascript">
window.onload = function() 
{ document.getElementById("hideAll").style.display = "none"; } </script> 

<style type="text/css">
body{
overflow: hidden;
width:100%;
height:100%;
padding:0;
margin:0;
}

#hideAll
{
position: relative;
left: 0px; 
right: 0px; 
top: 0px; 
bottom: 0px; 
background-color: white;
z-index: 99; 

}
#main{
width:1600px;
height: 500px;
margin:0 auto;
position: relative;
top: -50px;
left: -400px;
}
#Overlay {
opacity:    1; 
background-color: white; 
width:      227px;
height:     100%; 
z-index:    1;
top:        140px; 
left:       0; 
position: relative;
}


 #Overlay2 {
 opacity:    1; 
 background-color: white; 
 width:      262px;
 height:     100%; 
 z-index:    2;
 top:        140px; 
 left:       765px; 
 position: relative;
}

</style>
</head>

 <body>
<div  id="hideAll"> Please wait...</div>

 <div id="main"> 
<iframe  src="http://ectect.com"  scrolling="no" style="width:100%; height:100%; border:none; margin-left:0px;"/></iframe>
</div>

</body>

document.getElementById(“hideAll”).style.display=“block”;
window.onload=函数()
{document.getElementById(“hideAll”).style.display=“无”;}
身体{
溢出:隐藏;
宽度:100%;
身高:100%;
填充:0;
保证金:0;
}
#希德尔
{
位置:相对位置;
左:0px;
右:0px;
顶部:0px;
底部:0px;
背景色:白色;
z指数:99;
}
#主要{
宽度:1600px;
高度:500px;
保证金:0自动;
位置:相对位置;
顶部:-50px;
左:-400px;
}
#覆盖层{
不透明度:1;
背景色:白色;
宽度:227px;
身高:100%;
z指数:1;
顶部:140px;
左:0;
位置:相对位置;
}
#覆盖层2{
不透明度:1;
背景色:白色;
宽度:262px;
身高:100%;
z指数:2;
顶部:140px;
左:765px;
位置:相对位置;
}
请稍候。。。

在示例中,您似乎并没有真正使用jQuery,即使您正在
部分加载它。使用jQuery,我会尝试以下方法:

<script type="text/javascript">
  $(document).ready(function() {
    $("#hideAll").show();
  });

  $("#main iframe").load(function() {
    $("#hideAll").hide();
  });
</script>

$(文档).ready(函数(){
$(“#hideAll”).show();
});
$(“#主iframe”).load(函数(){
$(“#hideAll”).hide();
});

使用
结尾的片段,而不是文档开头的两个片段。

$(document).ready()
onDOMContentLoaded
激发时执行,OP具有
窗口。onload
,该窗口应等待页面上的所有资源加载完毕。“
在Iframe完全加载之前隐藏DIV
”是这里的问题。确定。我们必须对此进行测试,并且这个经过编辑的版本似乎可以正常工作——至少在Firefox上是这样。您的代码应该可以正常工作。我假设
iframe
使用ajax或其他异步技术(或其自己的
window.onload
),将“加载”时间延长到
iframe
自己的
window.onload
。在这种情况下,从
iframe
获取可靠就绪消息的唯一方法是从
iframe
手动创建并发送该消息。如果你不能控制文件,你就无能为力。我用这段代码在Chrome上一切都正常。我无法在IE中管理,因为它只工作了几次,不可靠,我需要IE,因为我需要创建.hta文件并从桌面上运行它。。问题是HTA默认浏览器是IE。我不能使用chrome的另一个原因是,使用该文件的人没有它,如果我嵌入了chrome的便携版本,我就不能使用window.resize(),因为它不起作用,而且我的模板是自定义的……但是你可以控制
iframe
的内容?如果是这样的话,您可以在主页上调用类似于“ready”的函数,当所有内容都完成时,从
iframe
。如果将代码作为HTA进行测试,请不要忘记在
iframe
标记中添加
application=“yes”
属性,否则无法获得跨帧访问。这可能也会阻止
iframe
onload
?。我从来没有遇到过HTAs中的
onload
问题,它似乎也适用于第三方内容(尽管在
iframe
中的第三方内容,您不应该使用application=“yes”)。谢谢!很高兴知道