解决JS对各浏览器的兼容问题

本文最后更新于:2023年3月30日 下午

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
var eventUtil = {
// 添加句柄
addHandler: function (element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false); // 高版本浏览器添加监听
} else if (element.attachEvent) {
element.attachEvent('on' + type, handler); // IE9以上浏览器添加监听
} else {
element['on' + type] = handler; // IE9以下浏览器添加监听,这里没有.调用时因为连接的事字符串,只能[]调用
}
},
// 删除句柄
removeHandler: function (element, type, handler) {
if (element.removeEventListener) {
element.removeEventListener(type, handler, false); // 高版本浏览器去除监听
} else if (element.detachEvent) {
element.detachEvent('on' + type, handler); //IE9 以上浏览器去除监听
} else {
element['on' + type] = null; // IE9以下浏览器去除监听
}
},
getEvent: function (event) {
return event ? event : window.event; // 解决低版本IE获取不到event低版本只支持window.event
},
getType: function (event) {
return event.type; // 获取这个对象的事件名称
},
getElement: function (event) {
return event.target || event.srcElement; // 获取这个对象target是火狐,srcElement是谷歌及IE
},
preventDefault: function (event) {
// 去除对象的默认动作
if (event.preventDefault) {
event.preventDefault(); // 高级浏览器
} else {
event.returnValue = false; // IE低版本浏览器
}
},
stopPropagation: function (event) {
// 阻止对象事件的冒泡
if (event.stopPropagation) {
event.stopPropagation(); // 高级浏览器
} else {
event.cancelBubble = true; // IE低版本浏览器
}
}
}

解决JS对各浏览器的兼容问题
https://seven3.site/js/解决JS对各浏览器的兼容问题/
作者
Seven3s
发布于
2015年1月7日
许可协议