在项目中经常要动态添加iframe,然后再对添加的iframe进行相关操作,有时候会遇到iframe加载很慢什么原因呢,该如何解决呢?带着这个问题一起通过本文学习,寻找答案吧!
aaa.html
<HTML> <HEAD> <TITLE>aaa</TITLE> </HEAD> <BODY> <IFRAME src="bbb.html" name=bbb width="100%" height="190"> </IFRAME> <INPUT type="button" value="显示text控件值" onclick="alert(bbb.document.all.txt.value)"> <SCRIPT LANGUAGE="JavaScript"> alert(bbb.document.all.txt.value); </SCRIPT> </BODY> </HTML>
bbb.html
<HTML> <HEAD> <TITLE>bbb</TITLE> </HEAD> <BODY> <input type=text name=txt value="guoguo"> </BODY> </HTML>
问题:
执行上面的aaa.html发现代码直接alert的值没有打出来,而点击按钮却可以打出其值。
分析:
页面加载时,遇到iframe就直接跳过去,加载下面的内容,然后再回来加载iframe,当然也可以理解成遇到iframe又开了一个线程来加载iframe,但是因为涉及到新的IO操作比较耗时,所以加载完成iframe还是晚于页面下部的js代码执行,所以出现了上面的问题。
解决方法:
在js代码中加个延迟(具体延迟多长时间可以凭个人经验了),这样就可以保证正常得到iframe中的对象了。
<SCRIPT LANGUAGE="JavaScript"> setTimeout("alert(bbb.document.all.txt.value)",1500); </SCRIPT>
结论:当一个页面中包含了iframe时,如果我们要通过js来操作iframe中的对象,一定要等到iframe加载完毕之后再操作,否则得不到想要的对象。
以上所述是小编给大家介绍的JS iFrame加载慢的解决办法,希望对大家有所帮助,同时也非常感谢大家对PHP中文网的支持!
更多JS iFrame加载慢怎么解决相关文章请关注PHP中文网!