百度首页 | 百度空间
 
查看文章
 
关于firefox3.0和Prototype1.6rc0
2007年08月18日 星期六 下午 05:15

近来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){
   function iter(name) {
     return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' " + name + " ')]";
   }
以上是关于firefox的,当然1.6的Prototype改动也是相当大

首先原有Event.observe无法在ie下面修正this指针的问题,现在正式加入wrap函数修正指针问题,当然如果你不喜欢this对象,你大可以自己bind别的对象执行,顺便Prototype还拓展了ie下面的event对象,现在你可以象在ff下面一样,使用event.stopPropagation()和event.preventDefault()以及target pageX pageY这些标准事件方法了

其次,Prototype首次引入了自定义事件,举Prototype网站上面一段例子

<div id="container"> 
   <h1><span id="title">Release notes</span></h1>
   ...
</div>
$("container").observe("titleChanged", function(event) { 
  this.highlight({ duration: 0.5 });
});
$("title").fire("titleChanged");
自定义事件可以使用fire方法调用,还可以支持帽泡,附带Prototype自定义了跨浏览器的contentloaded事件,可以document.observe("contentloaded",function(){........})这样挂函数了
还有,Prototype还加大了对于JSON的支持,现在在success函数里面可以直接调用.responseJSON得到返回的JSON对象,最后Prototype还对于Function Class这些类作了扩展,支持了superclass,更加大力度支持js的全面OO
现在还都是alpha rc阶段,但是Prototype的sam说了,希望目前已经feature-complete,紧跟时代步伐,才能走在前面

类别:javascript&web2.0 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu