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加載完畢之后再操作,否則得不到想要的對象。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM