查看文章 |
近来ff3.0开始alpha,已经到了alpha7,并且Prototype也开始了1.6的rc改动都是相当大,当然ff3.0由于gecko1.9引擎的使用,支持了JavaScript1.7,里面很多语言更新,比如let yield还有很多别的,可以参见mdc,当然w3c开始考虑XMLHttpRequest对象的合理跨域问题了,加入http验证信任报头,当然XMLHttpRequest对象也得修改,ff3.0就支持最新的跨域功能XMLHttpRequest了,可以避免使用iframe和script了,重点我还是要说ff3.0或gecko1.9对于DOM的扩展,最明显的是支持了document.getElementsByClassName方法,原来获取对象只有getElementById getElementsByName getElementsByTagName三个,一直没有关于css class获取对象的native原生方法,好似最近w3c觉得很有必要支持这个,所以ff3.0跟着也就实现了,其实原来早就很多库都实现了,但是现在就麻烦点了,因为如果原来代码不变,那会覆盖现有方法,所以Prototype1.6代码是这样的 if (!document.getElementsByClassName) document.getElementsByClassName = function(instanceMethods){ 首先原有Event.observe无法在ie下面修正this指针的问题,现在正式加入wrap函数修正指针问题,当然如果你不喜欢this对象,你大可以自己bind别的对象执行,顺便Prototype还拓展了ie下面的event对象,现在你可以象在ff下面一样,使用event.stopPropagation()和event.preventDefault()以及target pageX pageY这些标准事件方法了 其次,Prototype首次引入了自定义事件,举Prototype网站上面一段例子
自定义事件可以使用fire方法调用,还可以支持帽泡,附带Prototype自定义了跨浏览器的contentloaded事件,可以document.observe("contentloaded",function(){........})这样挂函数了
还有,Prototype还加大了对于JSON的支持,现在在success函数里面可以直接调用.responseJSON得到返回的JSON对象,最后Prototype还对于Function Class这些类作了扩展,支持了superclass,更加大力度支持js的全面OO 现在还都是alpha rc阶段,但是Prototype的sam说了,希望目前已经feature-complete,紧跟时代步伐,才能走在前面 |