[轉載]“無法開啟Internet網站 已終止操作”的解決方案
2008-10-06 16:59:03 技術 | 評論(0) | 瀏覽(5804) 寫了一個閃屏廣告JavaScript指令碼,結果在Firefox下測試正常,IE下卻提示“無法開啟Internet網站 已終止操作”的錯誤。Google了一下,找了n久才找到了出問題的原因。
本文轉自CNLEI.Blog(http://www.cnlei.org/blog/article.asp?id=501) 作者:CNLei
在IE下,當頁面還沒有載入完全時,如果正在執行的JS代碼中含有使用了document.createElement的話,很容易引起頁面載入失敗.導致提示"internet explore 無法開啟internet網站 http://www.xxx.com/xxx/xxx.html 已終止操作".
這是因為:
在IE下,在載入文檔的過程中,整個HTML文檔的DOM結構尚未產生完整,而此時正在執行的JS就已建立出新的DOM結點了,致使DOM樹的結構發生紊亂.
易出錯寫法:
<html>
<head>
<title> xxxxxxxxxxxx </title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="author" content="楓岩,CNLEI" />
<meta name="copyright" content="cnlei.y.l@gmail.com , http://www.cnlei.com" />
<meta name="keywords" content="" />
<meta name="description" content="" />
</head>
<body>
xxxxxxxxxxxxxxxxxx
<script type="text/javascript">
<!--
(function init(){
$WIN().create({//建立複雜HTML結構
id:"lWindow_Reg",
title:"註冊新使用者",
type :"AJAX",
innerHTML:'ex_reg.html'
},{
top:"50px",
left:"270px",
width:"560px"
});
})();
-->
</script>
xxxxxxxxxxxxxxxxxx
</body>
</html>
解決方案:
<html>
<head>
<title> xxxxxxxxxxxx </title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="author" content="楓岩,CNLEI" />
<meta name="copyright" content="cnlei.y.l@gmail.com , http://www.cnlei.com" />
<meta name="keywords" content="" />
<meta name="description" content="" />
</head>
<body>
xxxxxxxxxxxxxxxxxx
<script type="text/javascript">
<!--
(function(){
function init(){
$WIN().create({//建立複雜的HTML結構
id:"lWindow_Reg",
title:"註冊新使用者",
type :"AJAX",
innerHTML:'ex_reg.html'
},{
top:"50px",
left:"270px",
width:"560px"
});
};
if(!DWS.BV.isIE){//非IE瀏覽器直接初始化
init();
} else {
//IE下,防止瀏覽器提示“internet explore 無法開啟internet網站 已終止操作”
if (document.readyState=="complete"){
init();
} else {
document.onreadystatechange=function(){
if(document.readyState=="complete")init();
}
}
}
})();
-->
</script>
xxxxxxxxxxxxxxxxxx
</body>
</html>