1、javascript
又漲見識了 IE8報下面錯誤,並且是個人機器不報,同事的機器報,試了4臺,兩個報,兩個不報,IE版本都同樣,沒想明白 解決:html
一、查看是否有未關閉的html標籤,好比<table>而沒有</table> (我就是這個緣由) 二、是否在頁面未加載完前js代碼操做了body裏的元素,將相關js代碼移到</body>後面java
網頁錯誤詳細信息app
用 戶代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) 時間戳: Wed, 14 Apr 2010 08:33:56 UTCide
消息: HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917) 行: 0 字符: 0 代碼: 0 URI:測試
http://support.microsoft.com/kb/927917代理
2、htm
它的發生,是由於某些DOM操做發生在DOM樹加載完成以前,好比appendChildblog
就像下面的代碼:ip
<html> <head> </head> <body> <div> <script type="text/javascript"> alert(document.readyState); var oDiv = document.createElement("DIV"); oDiv.innerHTML = 'test odiv test odiv'; document.body.appendChild(oDiv); </script> </div> </body> </html>
當解析到DIV時就開始在BODY上appendChild,而這個時候BODY是尚未徹底就緒的(It is not fully loaded),文檔結構仍在loading和interactive狀態之間,因而,便會獲得上述錯誤。固然,該錯誤目前已確切知道的會存在於IE6和 IE7兩個版本中(低於IE6的未進行測試),在IE8中將會獲得一個HTML解析錯誤:HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917)
1.要解決這個問題,能夠進行document.readyState狀態判斷,當它爲complete時再進行相應的操做,或者給script標籤加上defer屬性(該屬性在IE8中已不獲支持)。
2.或者
js中加入了 setTimeout("XXXX()",1000);,使其得到足夠的加載時間後執行目標(XXXX)的function,因而問題獲得解決
來源:http://blog.163.com/xiao_mege/blog/static/72942753201102491443802/