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