奇怪的请求,我知道。
我们有15年前编写的系统,该系统仅在具有IE5兼容模式的IE中工作。某些在较新的浏览器中不起作用的事情与Javascript引擎的行为方式非常不同(还有很多问题,但这是我现在关注的问题)。
例如,您可以做类似
的操作document.frames
我可以通过扩展HTMLDocument DOM对象的原型在Chrome中实现此目的,例如:
Object.defineProperty(HTMLDocument.prototype, "frames", { get: function () { return document.getElementsByTagName("iframe"); } })
显然,这并非在每种情况下都适用,但肯定会加快处理速度(并避免必须修改50万行JS)。 (希望如此)这不是最终的解决方案(或最优雅的解决方案),但可以是在开始真正的重构之前使其快速运行的第一步。
我不希望我是使用此方法在新的浏览器上运行旧应用程序的第一人,因此我想知道如何以通用方式解决此问题,而不必为每个IE特定的属性/方法编写规则
谢谢。