Javascript 如何使Chrome表现为IE5/IE6

Javascript 如何使Chrome表现为IE5/IE6,javascript,internet-explorer-6,polyfills,Javascript,Internet Explorer 6,Polyfills,奇怪的要求,我知道 我们有一个15年前编写的系统,它只在IE5兼容模式的IE中工作。一些在新浏览器中不起作用的事情与Javascript引擎以一种非常不同的方式运行有关(还有很多问题,但这是我现在关注的一个问题) 例如,您可以执行以下操作 document.frames 我可以通过扩展HTMLDocument DOM对象的原型在Chrome中实现这一点,比如: Object.defineProperty(HTMLDocument.prototype, "frames", { get: func

奇怪的要求,我知道

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

例如,您可以执行以下操作

document.frames
我可以通过扩展HTMLDocument DOM对象的原型在Chrome中实现这一点,比如:

Object.defineProperty(HTMLDocument.prototype, "frames", { get: function () { return document.getElementsByTagName("iframe"); } })
显然,这并不适用于所有场景,但它肯定会加快过程(并避免修改50万行JS)。 (希望)这不是一个最终的解决方案(或最优雅的解决方案),但在开始真正的重构之前,它可以是让它快速工作的第一步

我不希望我是第一个使用这种方法使旧应用程序在新浏览器上工作的人,因此我想知道如何在不为每个IE特定属性/方法编写规则的情况下,以一般方式解决这个问题


谢谢。

有意思的问题,但太糟糕的库请求是离题的。您需要使用什么应用程序?还有哪些具体问题?你最好的选择可能是猴子之类的东西。我不认为你会找到某种全面的兼容模式。在那一天,有那么多特定于IE的黑客需要编写,我不想不得不对它们进行反向工程。如果您在html中看到大量IE条件注释,您不会感到惊讶,因为没有其他浏览器会这样做honor@CertainPerformance有趣的。。。有人可能会说,这与编程是100%相关的-Brad我可以访问所有的代码,一次修复“正确的方法”实在太难了-charlietfl他们甚至都不在乎这些,IE是他们唯一打算支持的浏览器。@willvv让这个问题符合规则很容易。只需删除“如果有任何著名的JS库…”并将您的问题改为“我如何做到这一点?”