其实很简单,就是把js代码放到</body>标签之前就可以解决了。

 

下面是微软给出的解释。

http://support.microsoft.com/kb/927917

 

出现此问题的原因子容器 HTML 元素包含试图修改子容器的父容器元素的脚本。 脚本试图使用 innerHTML 方法或 appendChild 方法修改父容器元素。

是例如如果 DIV 元素是在 BODY 元素中的子容器,并在 DIV 元素中的一个 SCRIPT 块尝试修改 DIV 元素的父容器的 BODY 元素,可能会出现此问题。

 

示例 1

<script type="text/javascript"></script> 在本例中, DIV 元素是一个子容器元素。 SCRIPT 块在 DIV 元素内的尝试修改 BODY 元素。 BODY 元素是关闭的父容器的 DIV 元素。

<html>
  <body>
      <div>
                  <script type="text/Javascript">
                    document.body.innerHTML+="sample text";
                  </script>
      </div>
  </body>
</html>

要解决此问题,请使用以下方法之一。

方法 1: 修改父元素

<script type="text/javascript"></script> 将 SCRIPT 块移动到 BODY 元素的范围。 这是脚本试图修改的容器。

<html>
  <body>
      <div>
      </div>
      <script type="text/Javascript">
           document.body.innerHTML+="sample text";
      </script>
  </body>
</html>
方法 2: 修改一个已关闭的容器元素

<script type="text/javascript"></script> 作为在父容器元素中的占位符中添加一个已关闭的容器。 然后,修改与脚本块新的已关闭的容器。

<html>
  <body>
      <div id="targetContainer">
      </div>
      <div>
      <script type="text/Javascript">
           document.getElementById('targetContainer').innerHTML+="sample text";
      </script>
      </div>
  </body>
</html>

示例 2

<script type="text/javascript"> </script>在此示例,深层嵌套的 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>
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐