我认为使用原生JavaScript不适合开发

41 阅读1分钟

经常看到一些要求会使用原生JavaScript进行开发,我觉得这样并不明智(特别是PC端开发),因为我觉得这样很多东西都要写两遍,不麻烦吗 下面来看看有哪些东西需要写两遍

绑定事件

addHandler:function(element,type,handler){
    if(element.addEventListener){
        element.addEventListener(type,handler,false);
    }else if(element.attachEvent){
        element.attachEvent('on'+type,handler);
    }else{
        element["on"+type] = handler;
    }
}

删除事件

removeHandler: function (element, type, handler) {
    if (element.removeEventListener) {
        element.removeEventListener(type, handler, false);
    } else if (element.detachEvent) {
        element.detachEvent("on" + type, handler);
    } else {
        element["on" + type] = null;
    }
}

获取事件及事件对象目标

//获取事件对象的兼容性写法
getEvent: function (event) {
    return event ? event : window.event;
},
//获取事件对象目标的兼容性写法 
getTarget: function (event) {
    return event.target || event.srcElement;
}

阻止浏览器默认事件的兼容性写法

preventDefault: function (event) {
    if (event.preventDefault) {
        event.preventDefault();
    } else {
        event.returnValue = false;
    }
}

在数组中很多ES5方法存在兼容性 indexOf()、forEach()、map()、filter()、some()等 IE低版本不支持getElementsByClassName() 好迟钝啊 getAttribute(),setAttribute()在不同浏览器的差异性 xmHttpRequest的兼容性 还有appendChild 很不好用啊