js兼容
1.事件的兼容
var ev=ev||window.event;
2.取消冒泡的兼容
function cancelbubble(ev){
var ev=ev||window.event;
if(ev.stopPropagation){
ev.stopPropagation();
}else{
ev.cancelBubble=true;
}
}
3.阻止浏览器默认事件的兼容
function preventDefaule(ev){
var ev = ev ||window.event;
if(ev.preventDefault){
ev.preventDefault();
}else{
ev.returnValue = false;
}
}
4.滚动条的兼容
var scroll=document.body.scrollTop||document.documentElement.scrollTop
5.获取元素属性的兼容
getComputedStyle(obj).attr obj.currentStyle.attr
6.键盘事件的兼容
event.keyCode event.which
7.addEventListener和attachEvent兼容
target.addEventListener("click", fun, false); --标准浏览器
target.attachEvent("onclick",fun); --IE浏览器(执行顺序按照绑定的反序)
removeEventListener()/detachEvent() 移除事件绑定的参数和添加事件绑定是一致的。
封装事件绑定
//添加事件
function addEvent(obj, type, fn, useCapture){
if (obj.addEventListener) {
obj.addEventListener(type, fn, useCapture);
}
else {
obj.attachEvent("on"+type, fn);
}
}
//移除事件
function removeEvent(obj, type, fn, useCapture){
if (obj.removeEventListener) {
obj.removeEventListener(type, fn, useCapture);
}
else {
obj.detachEvent("on"+type, fn);
}
}
//调用
addEvent(aBtn[0], "click", fn, false);
function fn(){
alert("click 按钮1");
}
aBtn[1].onclick = function(){
removeEvent(aBtn[0], "click", fn, false);
}
8.ajax对象的兼容
var ajax=new XMLHttpRequest();//标准浏览器
var ajax=new ActiveXObject('Microsoft.XMLHTTP');//ie6*/
var ajax=null;
try{
ajax=new XMLHttpRequest();
}catch(e){
ajax=new ActiveXObject('Microsoft.XMLHTTP');
}
posted on 2017-09-12 20:26 Dishonestman 阅读(125) 评论(0) 收藏 举报
浙公网安备 33010602011771号