2010-07-28 113 views
4

是否有JavaScript库提供与特定实现的向前兼容性?例如,这样一个库可以在各种浏览器中以可移植的方式提供JavaScript 1.6中的功能。它应该在可用时利用对该功能的本机支持。JavaScript兼容性库

一些像JQuery或Prototype这样的框架提供的功能与新版本的JS中的功能相同,但是我想要减少我使用的库的大小,并确保完全符合标准或发布版本。

是否存在这样的库?谷歌和维基百科在这个话题上没有太多的话要说。

回答

2

看起来好像有这样一个库:“JavaScript标准库”(JSL)。它旨在为支持JS 1.2或更高版本的浏览器提供尽可能多的JS 1.6兼容性。

我还没有使用它,我不确定它的工作效果。文件用粗略的英文写成;这可能表明缺乏广泛的使用,因为否则有人可能现在已经纠正它。

为了增加混乱,该网站链接到一个JSL Revision,位于不同的网站,它的功能列表表明,它提供了一个子集在main page列出的功能

作者已经写了更多关于这个库和关于this blog post中涉及的一般概念。

1

例如,这样一个库可以在各种浏览器中以可移植的方式提供JavaScript 1.6中的功能。它应该在可用时利用对该功能的本机支持。

这几乎是框架所做的,并做得很好(尽管它们关闭的大多数兼容性差距都与DOM和CSS相关)。我不知道有一个关注前向兼容性的通用框架。不知道是否可以存在,因为查看the Wikipedia article,任何版本的许多改进都是非常非常难以在旧版本的语言中模拟的构造和行为(例如,let,表达式闭包...)

+1

好点。这发生在我身上,但我认为JS 1.6可能没有指定任何此类功能。但是,[更多研究](https://developer.mozilla.org/en/new_in_javascript_1.6)后,我意识到我错了。 – intuited 2010-07-28 21:52:30

+0

@intuit很好找!有些功能可能可以在旧版本中模拟(尽管我不想成为负责实现它的人员:D),但许多事情(特别是数组和字符串泛型)不能。 – 2010-07-28 21:56:14

+0

看起来'for each'语法对于库实现肯定是不可取的。对我来说,似乎可以通过覆盖各种数组和字符串原型方法来实现数组和字符串泛型。但是,我只是第一次真正检查了这一点;我总是将JS编码为1.5,并避免了解更新版本的功能。 – intuited 2010-07-28 23:42:39