【问题标题】:ie9-js - has something else rendered it obsolete?ie9-js - 有其他东西使它过时了吗?
【发布时间】:2012-05-01 04:21:48
【问题描述】:

所以,大家都知道 ie9.js(来自http://code.google.com/p/ie7-js/)。它似乎有效,但自 2010 年上一次发布以来,它从未离开测试版。

显然,还有一些其他的东西有点类似(例如modernizr、html5shiv和CSS3Pie),但它们并不完全相同(尤其是因为它们需要按功能应用或者更多范围有限)。

将其用于现代化仍然被认为是一种好的做法吗?我应该使用其他东西吗?

【问题讨论】:

    标签: html internet-explorer cross-browser web-standards ie7.js


    【解决方案1】:

    ie9.js 仍然是一段很好的代码。它做了很多工作,修复了 IE 出错的问题。

    正如您正确指出的那样,它现在是一段旧代码,但它仍然可以工作。

    人们可能不再使用它的原因:

    • ie9.js 是一个大型 polyfill。这使它变得庞大而缓慢。如果您只需要修复某些特定功能,那可能是矫枉过正;一些较小的补丁可能会更好。
    • ie9.js 所做的大部分修复都是针对 IE6 的。越来越少的网站不再支持 IE6,因此所有这些代码都是多余的。同样,一些较小的补丁可能会更好。
    • ie9.js 不再被积极维护。这很好,因为它完成了它所要做的工作,但其他更新的补丁正在引起更多的兴趣,这既是因为它们是新的,也是因为它们可能具有任何优势。

    在您提到的替代工具(modernizr、html5shiv、CSS3Pie)中,它们实际上都没有任何与 ie9.js 交叉的功能。 (另见this answer

    但是,这里有一些更新的工具可能是 ie9.js 的良好替代品:

    • jQuery - 或其他类似库之一。这不仅仅是修复 IE 的漏洞,而是因为它强调了跨浏览器的兼容性,即使在 IE6 中,如果你正在编写 jQuery 代码,几乎不需要 ie9.js 提供的 Javascript 补丁
    • Selectivzr - 这可能是主要的。它是 IE 不支持的大多数缺少的 CSS 选择器的 polyfill。 ie9.js 做了更多的事情(即 IE6 和 7 的关系选择器),但 Selectivzr 使用预先存在的选择器引擎(您可以选择 jQuery、Prototype 等),这意味着它非常快速且轻量级,因为它利用了资源已加载。

    鉴于如今浏览器中的绝大多数 JS 代码都是使用 jQuery 编写的,这基本上将像 ie9.js 这样的包罗万象的 IE 修复程序补丁的需求减少到几乎为零。

    但是,如果您不使用 jQuery 或类似的库,那么您可能会发现 ie9.js 仍然可以很好地为您工作。

    【讨论】:

      【解决方案2】:

      我们前段时间为 ie9.js 制作了一个补丁并作为开源发布:https://github.com/mylovecompany/ie9-js

      【讨论】:

        猜你喜欢
        • 2014-07-03
        • 1970-01-01
        • 2017-10-19
        • 2012-02-11
        • 2014-02-03
        • 1970-01-01
        • 2018-02-12
        • 2021-03-14
        • 1970-01-01
        相关资源
        最近更新 更多