ie9-js - 有什么东西让它过时了吗?

时间:2012-04-19 15:40:38

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

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

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

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

2 个答案:

答案 0 :(得分:14)

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补丁。 / LI>
  • Selectivzr - 这可能是主要的一个。它是IE不支持的大多数缺少CSS选择器的polyfill。 ie9.js做了一些(即IE6和7的关系选择器),但Selectivzr使用预先存在的选择器引擎(你选择jQuery,Prototype等),这意味着它非常快,而且重量轻,因为它使用了已加载的资源。

鉴于目前浏览器中的绝大多数JS代码都是使用jQuery编写的,这基本上减少了对ie9.js等无所不包的IE修复补丁的需求,几乎为零。

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

答案 1 :(得分:6)

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