今天用IE打開(kāi) soso 的時(shí)候提示:
Internet Explorer 無(wú)法打開(kāi) xxxxxxx 已終止操作
但是用 FireFox 就可以訪問(wèn)。怪事了 用別的IE內(nèi)核瀏覽器也是一樣情況
以前做過(guò)的項(xiàng)目由于添加了在線統(tǒng)計(jì)系統(tǒng)。結(jié)果在Firefox下測(cè)試正常,IE下卻提示“無(wú)法打開(kāi)Internet站點(diǎn) 已終止操作”的錯(cuò)誤。一開(kāi)始也蒙了,在網(wǎng)絡(luò)上找了很多解決方法。最終使問(wèn)題得以完美解決,總結(jié)如下。
在IE下,當(dāng)頁(yè)面還沒(méi)有加載完全時(shí),如果正在執(zhí)行的JS代碼中含有使用了document.createElement的話,很容易引起頁(yè)面加載失敗。導(dǎo)致提示"internet explore 無(wú)法打開(kāi)internet站點(diǎn) http://www.xxx.com/xxx.html 已終止操作"。
這是因?yàn)樵贗E下,在加載文檔的過(guò)程中,整個(gè)HTML文檔的DOM結(jié)構(gòu)尚未生成完整,而此時(shí)正在執(zhí)行的JS就已創(chuàng)建出新的DOM結(jié)點(diǎn)了,致使DOM樹(shù)的結(jié)構(gòu)發(fā)生紊亂。
解決方法大概有兩種:
1、加載完成判斷
if (document.readyState=="complete"){
....
}else{
document.onreadystatechange=function(){
if(document.readyState=="complete")...;
}
2、加載完后執(zhí)行
window.onload=function(){
...
}
<!--2
做開(kāi)發(fā)時(shí)會(huì)碰到“Internet Explorer無(wú)法打開(kāi)internet站點(diǎn)文件.....操作終止”,還無(wú)法調(diào)試,主要是加載頁(yè)面時(shí)腳本引起DOM紊亂造成的。
目前我知道的會(huì)出現(xiàn)此問(wèn)題的情況:
1. 在DOM加載完之前進(jìn)行了增加刪除節(jié)點(diǎn)的操作,例如appendChild,removeChild。innerHTML操作目前還沒(méi)發(fā)現(xiàn)有這個(gè)問(wèn)題。
解決辦法:在jQuery(document).ready()或者在body的onload事件里執(zhí)行這些操作。
2. head包含<base target="_blank"/>,有對(duì)head對(duì)象的DOM操作也會(huì)出現(xiàn)這個(gè)問(wèn)題。
解決辦法:1)<base target="_blank"/>改為<base target="_blank"></base>,沒(méi)找到相關(guān)資料解釋這個(gè)問(wèn)題。
2)使用head.insertBeforeChild()代替appendChild,insertBeforeChild不會(huì)造成DOM紊亂。
本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/wangjj_016/archive/2010/02/10/5304780.aspx
ASP.NET頁(yè)面PostBack后向頁(yè)面添加了js腳本,js腳本又對(duì)DOM對(duì)象進(jìn)行了操作,而DOM又沒(méi)加載完畢,導(dǎo)致瀏覽器中斷。于是出現(xiàn)“Internet Explorer無(wú)法打開(kāi)站點(diǎn),已終止操作”的錯(cuò)誤。
解決方法:
1. 在DOM加載完成之后再執(zhí)行js操作;
2. 用jQuery,$(function() {function doit(){};}); 保證js腳本在DOM加載完畢之后執(zhí)行。
這個(gè)可能是我自己發(fā)神經(jīng)搞出來(lái)的個(gè)問(wèn)題吧.開(kāi)始懶得做,簡(jiǎn)單用后臺(tái)直接給一個(gè)加了runat="server"的div賦值。最后又想用jquery。結(jié)果混到一起,自己先暈了。
貼上先,
GetAllFile(0);//最后是將拼出來(lái)的html代碼傳給前臺(tái)一個(gè)div
RegisterStartupScript(FN, "<script>out(1);</script>");
這樣寫(xiě)呢一直就會(huì)報(bào)錯(cuò)
后來(lái)看了下,覺(jué)得可能是因?yàn)榍芭_(tái)還有其他的數(shù)據(jù)未加載完全,就改變了div的InnerHTML吧。
最后代碼:
RegisterStartupScript(FN, "<script defer=true>out(1);</script>"); //當(dāng)頁(yè)面加載完時(shí)調(diào)用
GetAllFile(0);//調(diào)用方法__再改變html