首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用java-script的IE10中的超文本标记语言解析改变了超文本标记语言的结构

使用java-script的IE10中的超文本标记语言解析改变了超文本标记语言的结构
EN

Stack Overflow用户
提问于 2012-12-21 01:46:30
回答 1查看 2.1K关注 0票数 0

IE10似乎破坏了/改变了HTML的层次结构。最好用下面的示例来解释这一点

代码语言:javascript
复制
<html>
<head>
<title>IE10 example</title>
</head>
<body>
<script language="javascript">
     function submitForm() {
         var temp;
         temp = document.getElementById("myTable");
         alert(temp.innerHTML);
     }
   </script> 
<table id="myTable">
<thead>
  <tr>
    <td>First Name</td><td>Last Name</td>
  </tr>
</thead>
<tbody >
  <form action="/users" method="post" name="userform">
    <input type="hidden" name="userName">
    <tr>
      <td>admin</td>
    </tr>
    <tr>
      <td>SA</td>
    </tr>
  </form>
</tbody>
</table>
<script language="javascript">
      submitForm()
</script> 
</body>
</html>

如果将上面的超文本标记语言页面加载到IE10中,表单节点将在输入节点之前关闭。因此,对任何输入节点的任何访问都会失败,并出现NULL/undefined错误。这个超文本标记语言可以在Mozilla,Chrome,IE9,ie10--可比较性模式下正常加载。

这是预期的行为吗?感谢您的时间和帮助

EN

回答 1

Stack Overflow用户

发布于 2012-12-21 03:13:14

这并不是IE10独有的。DOM在IE10、Chrome、Opera和火狐中也是一样的。通过复制上面显示的标记,在我的测试输入之前关闭表单:

https://dl.dropbox.com/u/444684/stackoverflow/test.html

第一个问题是缺少doctype。这将使浏览器进入怪异模式,这意味着它不会按照标准渲染,并且规则会变得更加灰暗。为了获得更好的跨浏览器一致性,您应该在文档顶部添加一个HTML5文档类型:

下一个问题是不允许表单是tbody元素的直接子元素。因为它是无效的,所以它遵循HTML5解析算法并关闭表单。要避免这种情况,请移动窗体,例如使其成为表的父级。

https://dl.dropbox.com/u/444684/stackoverflow/test2.html

如果您查看浏览器调试器,例如IE中的F12,您将看到输入现在位于表单中。您也不再需要警告,因为DOM检查器是一种更容易调试的方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13977689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档