显然,还有一些其他的事情有点类似(例如modernizr,html5shiv和CSS3Pie),但是它们不完全相同(尤其是因为它们需要被应用于每个功能或者在范围上更有限) ).
使用现代化还是好的做法吗?我应该用别的东西吗
解决方法
正如你正确地指出的,它现在是一段旧的代码,但它仍然可以工作.
人们可能不会再使用它的原因:
> 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编写的,所以这基本上减少了一个全面的IE修复程序补丁(如ie9.js)几乎为零的需求.
但是,如果您不使用jQuery或类似的库,那么您可能会发现ie9.js仍然可以为您效力.