我有一个iframe(我知道不好),在文档就绪时设置了加载事件:
<script>
$(function(){
var executeLoad = false;
$("#ExampleFrame").on("load", function(){
if(executeLoad){
doSomething();
}
});
executeLoad = true;
});
</script>
<iframe id="ExampleFrame" name="example"></iframe>
<form id="Example Form" method="post" action="http://externalurl" target="example">
</form>
我注意到页面加载后doSomething()
正在执行,所以我添加了executeLoad
检查,但仍然无效。我还尝试将脚本块放在form
标记下面的正文中,它仍在执行中。这只发生在Firefox中。有什么办法可以忽略#ExampleFrame
的初始加载事件吗?我原以为将文件准备好的装载事件绑定就可以防止这种情况发生。
答案 0 :(得分:0)
网页加载(并触发onload事件),即使其他元素如异步调用,承诺,图像加载,iframe加载仍在进行中。这意味着,即使某些Div和元素仍未加载,HTML文档仍会加载。
所以,基本上如果你想要整个网页&amp; iframe要完全加载,请使用类似的东西 -
<script>
$(function(){
$("#ExampleFrame").one("load", function(){
$(this).on("load", doSomething);
});
});
</script>
<iframe id="ExampleFrame" name="example"></iframe>
<form id="Example Form" method="post" action="http://externalurl" target="example">
</form>
希望它有所帮助。