经常看到一些要求会使用原生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 很不好用啊