Javascript“ Polyfill”使Chrome表现为IE5 / IE6

时间:2018-11-22 01:57:36

标签: javascript internet-explorer-6 polyfills

奇怪的请求,我知道。

我们有15年前编写的系统,该系统仅在具有IE5兼容模式的IE中工作。某些在较新的浏览器中不起作用的事情与Javascript引擎的行为方式非常不同(还有很多问题,但这是我现在关注的问题)。

例如,您可以做类似

的操作
document.frames

我可以通过扩展HTMLDocument DOM对象的原型在Chrome中实现此目的,例如:

Object.defineProperty(HTMLDocument.prototype, "frames", { get: function () { return document.getElementsByTagName("iframe"); } })

显然,这并非在每种情况下都适用,但肯定会加快处理速度(并避免必须修改50万行JS)。 (希望如此)这不是最终的解决方案(或最优雅的解决方案),但可以是在开始真正的重构之前使其快速运行的第一步。

我不希望我是使用此方法在新的浏览器上运行旧应用程序的第一人,因此我想知道如何以通用方式解决此问题,而不必为每个IE特定的属性/方法编写规则

谢谢。

0 个答案:

没有答案