IE下產生KB927917的javascript錯誤的解決方法.

來源:互聯網
上載者:User

最近在寫程式中遇到這樣一個錯誤

 

代碼

網頁錯誤詳細資料

使用者代理程式: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
時間戳記: Tue, 30 Mar 2010 01:42:50 UTC

訊息: HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917)
行: 0
字元: 0
程式碼: 0
URI: http://localhost:2322/ScheduleModel/Pages/SignMemberMaintain.aspx?CertificateKey=i9BmNO8EiDtUNbfbzY0W9sWk9QiNfmfrPG3hDrhtxIfenjYvmmTkkQ%3d%3d&

 

 

產生這個錯誤的代碼如下:

 

代碼

                var msgw,msgh,bordercolor;     
                msgw=400;
                msgh=100;     
                titleheight=25        
                bordercolor=""#336699"";
                titlecolor=""#99CCFF"";     

                var bgObj = document.createElement(""div"");   
                bgObj.setAttribute(""id"", ""bgDiv"");
                bgObj.style.position = ""absolute"";
                bgObj.style.top = document.getElementById('" + UpdatePanel1.ClientID + @"').offsetTop + ""px""
                bgObj.style.background = ""#777"";
                bgObj.style.filter = ""progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75"";
                bgObj.style.opacity = ""0.6"";
                bgObj.style.left = document.getElementById('" + UpdatePanel1.ClientID + @"').offsetLeft + ""px""
                bgObj.style.width = document.getElementById('" + UpdatePanel1.ClientID + @"').offsetWidth + ""px""
                bgObj.style.height = document.getElementById('" + UpdatePanel1.ClientID + @"').offsetHeight + ""px""
                bgObj.style.zIndex = ""10000"";
                document.getElementById('" + UpdatePanel1.ClientID + @"').appendChild(bgObj);

                var msgObj=document.createElement(""div"");
                msgObj.setAttribute(""id"",""msgDiv"");     
                msgObj.setAttribute(""align"",""center"");     
                msgObj.style.background=""white"";     
                msgObj.style.border=""1px   solid   ""   +   bordercolor;     
                msgObj.style.position   =   ""absolute"";     
                msgObj.style.left   =   ""50%"";     
                msgObj.style.top   =   ""50%"";     
                msgObj.style.font=""12px/1.6em   Verdana,   Geneva,   Arial,   Helvetica,   sans-serif"";     
                msgObj.style.marginLeft   =   ""-225px""   ;     
                msgObj.style.marginTop   =   -75+document.documentElement.scrollTop+""px"";     
                msgObj.style.width   =   msgw   +   ""px"";     
                msgObj.style.height   =msgh   +   ""px"";     
                msgObj.style.textAlign   =   ""center"";     
                msgObj.style.lineHeight   =""25px"";     
                msgObj.style.zIndex   =   ""10001"";     
                document.body.appendChild(msgObj);

                var txt=document.createElement(""p"");  
                txt.style.margin=""1em   0""     
                txt.setAttribute(""id"",""msgTxt"");     
                txt.innerHTML=""頁面初始化資料不全,請勿操作!"";     
                document.getElementById(""msgDiv"").appendChild(txt);  

 

 

產生錯誤的那句我已經Highlight.初步認為是在Body還沒有處理結束的時候又向裡面加入新的元素導致(It is not fully loaded).

此時document正處於loading與interactive狀態之間

 

解決方法:

 

1.先進行document.readyState狀態判斷,當它為complete時再進行相應的操作,或者給script標籤加上defer屬性(該屬性在IE8中已不獲支援)。

jquery裏的$(document).ready(function(){
// 在這裏寫你的代碼...
});

 

或者

 

2.javascript中加入了 setTimeout("XXXX()",1000);,使其獲得足夠的載入時間後執行目標(XXXX)的function

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.