1.监视和解除绑定事件IE:
接收事件:obj.attachEvent('onXXX ',fn);
关闭事件:obj.detachEvent('onXXX ',fn);
标准接收事件:obj.addeventlistener(“类型”、fn、false);
标准释放事件:obj.removeeventlistener ('type ',fn,false);
2.计算非内嵌样式
Ie: obj.curren或obj.currentStyle[attr]
其他:
Document.de(obj,null)。attr
//或
Document.de(obj,null)[attr]
3.获取与页面滚动条顶部的距离。
有两种方法可以获取与浏览器滚动条顶部的距离,并且存在兼容性问题。
Document.body.scrollTop或document.documen
(1)文档处于混合模式。
所有浏览器都使用document.body.scrollTop导入,但一般文档具有文档类型声明,因此几乎不存在。
(2)文档处于标准模式下:
chrome和safari:使用document.body.scrollTop获取
IE:使用document.documen获取
考虑浏览器的兼容性:
let scrollTop = document.documen || document.body.scrollTop;
4. IE和其他浏览器中的事件对象event
封装一个获取当前事件的派生对象的函数
getEventTarget
若使用DOM0级绑定事件的方式,那么event是作为window对象的属性存在的
IE中,既可以使用window.event,也可以使用函数的第一个参数
在其他浏览器中,event是事件的参数
在IE中,引发事件的对象是由event.srcElement获得;在其他浏览器中,引发事件的对象是由event.target获得。
5. 取消事件冒泡
在IE中,使用 event.cancelBubble = true 来取消事件冒泡。
在其他浏览器中,使用stopPropagation()方法来取消事件冒泡。
6. 取消事件的默认行为
事件的默认行为:例如<a>的点击事件的默认行为就是跳转链接
在IE中,使用event.returnValue = false来取消事件的默认行为。
在其他浏览器中,使用preventDefault()方法来取消事件的默认行为。
把上述几个封装在一起:
var eventUtil = {
// 添加句柄
addHandler: function(element, type, handler) {
if ) {
element.addEventListener(type, handler, false);
} else if ) {
element.attachEvent('on' + type, handler);
} else {
element['on' + type] = handler;
}
},
// 删除句柄
removeHandler: function(element, type, handler) {
if ) {
element.removeEventListener(type, handler, false);
} else if ) {
element.detachEvent('on' + type, handler);
} else {
element['on' + type] = null;
}
},
//事件
getEvent: function(event) {
return event ? event : window.event;
},
//类型
getType: function(event) {
return event.type;
},
//目标元素
getElement: function(event) {
return event.target || event.srcElement;
},
//阻止默认事件
preventDefault: function(event) {
if ) {
event.preventDefault();
} else {
event.returnValue = false;
}
},
//阻止事件冒泡
stopPropagation: function(event) {
if ) {
event.stopPropagation();
} else {
event.cancelBubble = true;
}
}
}
欢迎关注。
1.《部分原生JavaScript兼容性问题解决方案,IE已经被抛弃,走好不送》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《部分原生JavaScript兼容性问题解决方案,IE已经被抛弃,走好不送》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.cxvn.com/gl/djyxgl/195740.html