在使用AngularJS加载页面时,IE9出现以下错误:“无法获取属性'nodeName'的值:对象为空或未定义undefined”。Chrom/FF没有问题。请问有什么解决方法吗?我以为这个问题已经在AngularJS 1.0.1版本中得到了修复。
当我意外使用以下非法标记时,在IE9中出现了此错误。
<table>
<h3>foo</h3>
..... blah
</table>
也许可以运行一个 HTML 代码校验器,确保你没有违反任何规则。
问题是:
<table>
<tr ng-repeat="p in list">
<td>{{p.f1}}</td> {{p.f2}}
</tr>
<table>
请记住,根据HTML规范,<tr>
标签应该只包含<td>
标签而不是其他标签或原始文本。现代浏览器(包括IE 10)可以处理这个错误,但在IE 9中,angular会引发一个错误。
<table> <SOMETHING> </table>
我建议您从浏览器中复制DOM并在https://validator.w3.org/check上进行检查。 寻找错误,例如:文档类型不允许在此处使用元素“SOMETHING”;缺少一个“TH”,“TD”开始标记。
<table>
<thead>bla</thead>
...
</table>
<table>
<div>
<tr></tr>
</div>
</table>
我曾经遇到过同样的问题,原因是在一个 <table>
中,我放了一些没有被包含在 <tr>
和 <td>
中的 <h3>
标签,此外,我还使用了一些 <br>
和 <br/>
标签,更好的做法是使用 <br />
,以符合 XHTML
的规范。
对我来说问题出现在“Back”超链接之前。我使用了 htmllint 并解决了所有非法标记错误,除了 Angular 的错误。
我在 angular-perf.js 上遇到了这个错误。如果您添加一个条件注释来排除 IE,它将可以工作,但是您将无法在 IE 中使用 angular-perf。