其實很簡單,就是把js代碼放到</body>標籤之前就可以解決了。
下面是微軟給出的解釋。
http://support.microsoft.com/kb/927917
出現此問題的原因子容器 HTML 元素包含試圖修改子容器的父容器元素的腳本。 腳本試圖使用 innerHTML 方法或 appendChild 方法修改父容器元素。
是例如如果 DIV 元素是在 BODY 元素中的子容器,並在 DIV 元素中的一個 SCRIPT 塊嘗試修改 DIV 元素的父容器的 BODY 元素,可能會出現此問題。
示例 1
在本例中, DIV 元素是一個子容器元素。 SCRIPT 塊在 DIV 元素內的嘗試修改 BODY 元素。 BODY 元素是關閉的父容器的 DIV 元素。
<html>
<body>
<div>
<script type="text/Javascript">
document.body.innerHTML+="sample text";
</script>
</div>
</body>
</html>
要解決此問題,請使用以下方法之一。
方法 1: 修改父元素
將 SCRIPT 塊移動到 BODY 元素的範圍。 這是腳本試圖修改的容器。
<html>
<body>
<div>
</div>
<script type="text/Javascript">
document.body.innerHTML+="sample text";
</script>
</body>
</html>
方法 2: 修改一個已關閉的容器元素
<html>
<body>
<div id="targetContainer">
</div>
<div>
<script type="text/Javascript">
document.getElementById('targetContainer').innerHTML+="sample text";
</script>
</div>
</body>
</html>
示例 2
在此示例,深層嵌套的 TD 容器元素內的一個 SCRIPT 塊會嘗試通過 appendChild 方法中修改父容器 BODY 元素。
<html>
<body>
<table>
<tr>
<td>
<script type="text/Javascript">
var d = document.createElement('div');
document.body.appendChild(d);
</script>
</td>
</tr>
</table>
</body>
</html>
要解決此問題,請插入 BODY 元素中移動 SCRIPT 塊
<html>
<body>
<table>
<tr>
<td>
</td>
</tr>
</table>
<script type="text/Javascript">
var d = document.createElement('div');
document.body.appendChild(d);
</script>
</body>
</html>