1. 浏览器判断1.1中的浏览器信息附加在window对象之上,直接用window的ie/ie6/ie7等判断IE及其相关版本,使用gecko判断Firefox,webkit判断Safari,判断Opera就是opera属性(也许是因为Opera,才将浏览器信息放在window对象上)
1.2中和Prototype一样,独立出Browser类,下有Engine,浏览器类型及版本在Browser.Engine下,如ie为Browser.Engine.trident,ie6为Browser.Engine.trident4,ie7为Browser.Engine.trident5,以此类推
因此如果原代码中使用了浏览器判断,需要作相应修改
2.接口实现、类继承及扩展
1.1中实现接口时,需要在类声明之后,使用implement方法,如MyClass.implement(new Events)
1.2中直接在类声明中,加入一个Implements属性,如var MyClass = new Class({ Implements : Events,….})
1.1中的继承使用extend,如MyClass = BaseClass.extend({})
1.2中的继承与接口实现类似:MyClass = new Class({ Extends : BaseClass….});
1.1中对内置对象的扩展使用extend,如String.extend({})
1.2中改成了implement,如String.implement({})
3.setter和getter1.1中对DOM对象的html或text方法是setHTML/getHTML/setText/getText
1.2中使用get和set方法,通过参数实现,如get(’html’)/set(’html’, ‘…’),以此类推
4.DOM对象替换1.1中使用replaceWith,如,a.replaceWith(b);
1.2中使用replaces,并且如方法名所示,改变了施受对象,如b.replaces(a);
5.类/方法名 更换1.1 1.2
Drag.Base Drag
Fx.Base Fx
Fx.Style Fx.Tween
Fx.Styles Fx.Morph
$E $$
$ES $$
XHR Request
Ajax Request
6.为iframe内的DOM对象添加事件监听前,需要将iframe IFrame化,如果原iframe使用new Element创建,需要修改成new IFrame创建
7.在1.1中bindWithEvent时接收的event是经过moo包装的Event对象,而在1.2中,除非是对DOM对象的监听事件,否则接收到的event只是原生的event,比如说原来直接event.stop(),现在需要改成newEvent(event).stop()
8.Element方法1.1中把Element从DOM移除使用使用remove方法
1.2中使用dispose
9.盒模型相关的处理1.1中使用取样式中的尺寸及位置属性时,不考虑border及padding对Element的影响,所以一般会自己处理
1.2中已经处理了上述问题,所以自己处理的相关代码可以移除
相应有影响的Element方法

etPosition, getSize, getCoordinates等
10.如果在1.1有自扩展的Selectors的,需要对比着修改,1.2不再使用xpath查询
11.1.1在使用setOptions时,不会删除options中包含的事件方法,因此还可以继续使用this.options.onXXX来调用,而1.2会自动删除,所以需要改成事件触发