在IE8或者IE7浏览器,当在一个标记里用appendChild这类函数时,会出现HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917) 这个错误,其实这个错误的根本原因是在一个未闭合的节点内使用了append这类函数,网上解决这类错误的方法有以下几个:
1。下面是一个出现这个问题的例子:
<html> <body> <table> <tr> <td> <script type="text/Javascript"> var d = document.createElement('div'); document.body.appendChild(d); </script> </td> </tr> </table> </body> </html>
把脚本移动到table外面,这个问题就解决了:
<html> <body> <table> <tr> <td> </td> </tr> </table> <script type="text/Javascript"> var d = document.createElement('div'); document.body.appendChild(d); </script> </body> </html>
其实在出现这种问题的时候,我们可以把这类代码移到body标签后,这样基本可以杜绝这类问题。
还有一种解决办法是用 insertBefore操作替代appendChild。
用insertBefore操作替代appendChild :
function bgad(){//.....document.body.insertBefore( ad,document.body.firstChild);//.....}
直接寻找body的第一个节点,这样就避免了节点 不完整情况。