html - 确定哪个自定义 HTML 标记冒犯了 IE8

标签 html angularjs internet-explorer-8

我们在我们的 angular.js 应用程序中使用了大量的自定义标签,我正试图让 IE8 识别它们。设置:

  • Angular (1.1.5)
  • HTML5模式
  • 在许多情况下为指令使用自定义标记(我们不会R替换它们)
  • 使用 IE-shiv.js 向 IE8 注册自定义标签

这是一个很大的应用程序——我们在 IE-shiv.js 中注册了 50 多个自定义标签(我们喜欢自定义标签的标记清晰易读)。我已经多次浏览该应用程序,寻找我忘记注册的标签,但我仍然收到 Error: Unexpected call to method or property access.undefined。我目前正在打开和关闭应用程序的某些部分以查找有问题的标签...但感觉可能有更好的方法:

我可以检测哪个自定义 HTML 标记触发了 IE8 中的错误吗? 是否有一些偷偷摸摸的方法 - monkey-punching document.createElement 或向某些内部 Angular 指令添加 try/catch?

最佳答案

加载文档后运行此 JS。它将找到所有标签名称以 / 字符开头的元素,这是在 IE8 中为解析器遇到关闭标签时所有无法识别的元素创建的。

var list = document.getElementsByTagName('*');
for (var i = 0, len = list.length; i < len ; i++) {
  if (list[i].tagName.indexOf('/') === 0)
    alert(list[i].tagName.substr(1));
} 

关于html - 确定哪个自定义 HTML 标记冒犯了 IE8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17932470/

相关文章:

javascript - 如果未选中复选框且文本字段不为空,则显示警报

javascript - 对 JSON 对象中的日期进行排序 Angular JS

AngularJS:未知提供者:$idleProvider

javascript - 带有属性的 $scope 表示未定义

jQuery .data() 不检索数据-*

css - 第二个 CSS 类在 IE8 中不起作用

html - 语义标记和表单

html - 容器的边框在图像溢出的一侧不可见

javascript - 居中的 div 在 IE8 中不起作用

html - 无法从 html apache2 中受密码保护的目录访问另一个文件?