由于js发展早期各家的浏览器的标准不统一,所有为了兼容不同的浏览器,在响应不同的事件时常常需要在代码中有一些兼容性写法,目前主要需要兼容事件有以下几种:
事件对象兼容:
let e = evt || event //凡是使用到事件的时候无脑兼容
阻止事件冒泡的兼容:
e.stopPropagation?e.stopPropagation():e.cancelBubble = true; //对事件的触发源添加该方法.stopPropagation();
阻止浏览器默认行为
e.preventDefault? e.preventDefault() : e.returnValue = false;
获取真实事件源:
let target = e.srcElement || e.target
获取滚动条高度:
let _top = document.documentElement.scrollTop || document.body.scorllTop;
键盘字符兼容:
let key = e.keyCode || e.charCode || e.which