在項目中經常要動態添加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加載慢的解決辦法,希望對大家有所幫助,同時也非常感謝大家對網站的支持!