• 2006-12-11

    FF vs IE: JS兼容性经验谈(持续更新中) - [技术空间]

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/lily64-logs/4015610.html

    做了几周的js兼容性,多少总结了几条经验,下面把ff下常用的替代写法和区别列举出来,大家共享。
    1,document.getElementById替代document.all(ie适用)
    2,集合[]替代()(ie适用)
    3,target替代srcElement;parentNode替代parentElement(parentNode ie适用)
    4,node.parentNode.removeChild(node)替代node.removeNode(true)(ie适用)
    5,有空白文本节点
    6,无outerHTML属性;textContent替代innerText
    7,无contenteditable属性
    8,getAttribute(attrName)替代obj.attrName获取自定义属性;setAttribute(attrName,value)替代obj.attrName=value为自定义属性赋值(ie适用)
    9,window.frames替代document.frames(ie适用)
    10,window.frames["ifrmName"]替代window.frames["ifrmId"](ie适用)
    11,框架有contentDocument属性
    12,事件局部变量e替代事件全局变量event;事件调用时用oneventname=functionname(event)方式传事件变量
    13,e.button键值有别于event.button,只有3个键值而无组合键值
    14,e.which替代event.keyCode
    15,无ondrag事件
    16,window.onresize事件处理不实时
    17,DOMMouseScroll替代onmousewheel;-e.detail替代event.wheelDelta
    18,addEventListener替代attachEvent;removeEventListener替代detachEvent
    19,e.preventDefault()替代event.returnValue=false;e.stopPropagation()替代event.cancelBubble=true
    20,style.top、style.left等严格检查"px"单位(加"px" ie适用)
    21,style="-moz-user-select:none"替代onselectstart=function(){return false;}
    22,style="-moz-opacity:0.9"替代style="filter:alpha(opacity=90)";无其它filter
    23,style="display:-moz-inline-box;width:100px"替代style="display:inline;width:100px"
    24,style.cursor="pointer"替代style.cursor="hand"(ie适用)
    25,style.cssFloat替代style.styleFloat
    26,title替代alt(ie适用)
    27,getYear()需加上1900
    28,状态栏默认不可修改,需调整ff设置
    29,window.focus()默认不支持,需调整ff设置
    30,内置绘图功能以canvas或者SVG替代vml
    31,代码出错时经常不报错(想来也是ff的无奈之举吧,如果每个ie独有的表达方式换在它里面都报错的话,怕是报都报不过来吧)
    32,对缓存的清理非常不好
    33,ie对getElementsByName的支持不好
    注:标明“ie适用”者为通用性建议写法,未标明者在ie里不适用。

    分享到: