用JavaScript做浏览器对象事件的兼容性
2015-06-28 11:36
721 查看
//跨浏览器添加事件
function addEvent(obj, type, fn) {
if (obj.addEventListener) {
obj.addEventListener(type, fn, false);
} else if (obj.attachEvent) {
obj.attachEvent('on' + type, function () {
fn.call(obj);
});
}
}
//跨浏览器移除事件
function removeEvent(obj, type, fn) {
if (obj.removeEventListener) {
obj.removeEventListener(type, fn, false);
} else if (obj.detachEvent) {
obj.detachEvent('on' + type, fn);
}
}
//跨浏览器阻止默认行为
function preDef(evt) {
var e = evt || window.event;
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
}
//跨浏览器获取目标对象
function getTarget(evt) {
if (evt.target) {//W3C
return evt.target;
} else if (window.event.srcElement) {//IE
return window.event.srcElement;
}
}
//跨浏览器获取字符编码
function getCharCode(evt) {
var e = evt || window.event;
if (typeof e.charCode == 'number') {
return e.charCode;
} else {
return e.keyCode;
}
}
function addEvent(obj, type, fn) {
if (obj.addEventListener) {
obj.addEventListener(type, fn, false);
} else if (obj.attachEvent) {
obj.attachEvent('on' + type, function () {
fn.call(obj);
});
}
}
//跨浏览器移除事件
function removeEvent(obj, type, fn) {
if (obj.removeEventListener) {
obj.removeEventListener(type, fn, false);
} else if (obj.detachEvent) {
obj.detachEvent('on' + type, fn);
}
}
//跨浏览器阻止默认行为
function preDef(evt) {
var e = evt || window.event;
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
}
//跨浏览器获取目标对象
function getTarget(evt) {
if (evt.target) {//W3C
return evt.target;
} else if (window.event.srcElement) {//IE
return window.event.srcElement;
}
}
//跨浏览器获取字符编码
function getCharCode(evt) {
var e = evt || window.event;
if (typeof e.charCode == 'number') {
return e.charCode;
} else {
return e.keyCode;
}
}
相关文章推荐
- JavaScript为什么会有 undefined值。
- js实现可配置参数的轮播图
- JSONP 理解 和 实例 讲解
- js函数前加分号和感叹号是什么意思?有什么用?
- JavaScript 语句分号的必要性
- JavaScript在网页中的位置
- 学习Javascript闭包(Closure)
- 理解 Javascript 的闭包
- 那些逐步掌握的JavaScript('arguments')
- Jsp:param标签的使用
- Extjs布局
- javascript中遇到的字符串对象处理
- js类型判断的方法
- Js学习文件上传
- 最简单的处理MVC中默认的Json方法返回时间的问题
- 100多个基础常用JS函数和语法集合大全
- 【HM】第3课:JavaScript高级
- JS的碰撞周期移动
- JSON处理
- 在JSP前台和后台传递参数乱码汇总