我有一些无法更改的旧 JavaScript 代码在 IE10 上崩溃(我可以更改其他脚本文件)。
这是崩溃的代码:
if(isInternetExplorer && this.domElement.filters[0])
this.domElement.filters[0].play()
该代码不会在 ie8/9 中崩溃,因为 DOM 元素具有非标准属性“过滤器”。
这是filters 属性的文档。
我能想到的唯一解决方案是更改 HtmlElement 的原型,但我不觉得这实际上是可能的或做的好事。
那么如何防止 IE10 在尝试使用 DomObject.filters 属性时崩溃呢?
[编辑] 我刚刚找到了一个“解决方案”。这也是@JAM 的解决方案。:
if (!HTMLDivElement.filters) {
HTMLDivElement.prototype.filters = [];
}
但是我仍然对修改浏览器原生对象的原型感到难过。