在項(xiàng)目中經(jīng)常要?jiǎng)討B(tài)添加iframe,然后再對(duì)添加的iframe進(jìn)行相關(guān)操作,有時(shí)候會(huì)遇到iframe加載很慢什么原因呢,該如何解決呢?帶著這個(gè)問(wèn)題一起通過(guò)本文學(xué)習(xí),尋找答案吧!
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>
問(wèn)題:
執(zhí)行上面的aaa.html發(fā)現(xiàn)代碼直接alert的值沒(méi)有打出來(lái),而點(diǎn)擊按鈕卻可以打出其值。
分析:
頁(yè)面加載時(shí),遇到iframe就直接跳過(guò)去,加載下面的內(nèi)容,然后再回來(lái)加載iframe,當(dāng)然也可以理解成遇到iframe又開(kāi)了一個(gè)線程來(lái)加載iframe,但是因?yàn)樯婕暗叫碌腎O操作比較耗時(shí),所以加載完成iframe還是晚于頁(yè)面下部的js代碼執(zhí)行,所以出現(xiàn)了上面的問(wèn)題。
解決方法:
在js代碼中加個(gè)延遲(具體延遲多長(zhǎng)時(shí)間可以憑個(gè)人經(jīng)驗(yàn)了),這樣就可以保證正常得到iframe中的對(duì)象了。
<SCRIPT LANGUAGE="JavaScript">
setTimeout("alert(bbb.document.all.txt.value)",1500);
</SCRIPT>
結(jié)論:當(dāng)一個(gè)頁(yè)面中包含了iframe時(shí),如果我們要通過(guò)js來(lái)操作iframe中的對(duì)象,一定要等到iframe加載完畢之后再操作,否則得不到想要的對(duì)象。
以上所述是小編給大家介紹的JS iFrame加載慢的解決辦法,希望對(duì)大家有所幫助