JS iFrame 加载慢怎么解决

Posted 笔记本

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS iFrame 加载慢怎么解决相关的知识,希望对你有一定的参考价值。

在项目中经常要动态添加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 加载慢怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

asp.net iframe不刷新怎么办?

iframe页面 JS问题.加载了不执行或者没完全加载如何解决

HTML 中 嵌套iframe 不断刷新 登录页面 ,此页面会过期,如果会,怎么解决

JS怎么实现页面刷新时,页面中的iframe不刷新

Vue中 iframe 的内容加载慢,实现加载(Loading)效果

js高手,在iframe中弹出加载的窗口?