JS中的兼容问题总结
JS里面常见的兼容性问题
1.获取滚动距离
document.documentElement.scrollTop || document.body.scrollTop (兼容IE)
2.获取非行间样式
getComputedStyle(元素,false)[attr] || 元素.currentStyle[attr]
3.索引获取字符串
str[1] 在IE6,7中不兼容,用str.charAt(1)在各个浏览器都兼容
4.DOM中的获取节点的兼容
- chilidNodes,firstChild,lastChild,nextSibling,previousSibling 在IE6-8中获取的是元素节点,而在正常浏览器中获取出来包括元素节点,文本节点,属性节点
- 在正常浏览器总用children,firstElementChild,lastElementChild,nextElementSibling,previousElementSibling获取的是元素节点
5. var e =e || event
获取事件对象 document.onclick=function(e){ var currentEvent= e || window.event; console.log(currentEvent); }
6. var target = e.target || e.srcElement
获取触发事件的那个元素
7. var key = e.keyCode || e.which
获取键盘按下的键
8. e.prevntDeafault() || e.returnValue = false
阻止浏览器默认事件
9. e.stopPropagation() || e.cancelBubble = true
阻止冒泡
10. 元素.addEventListener() 和 元素.attachEvent()
添加DOM2级事件(监听事件) 第一种第一个参数写类型的时候不需要加on 而第二种需要加on
元素.addEventListener("click",function(){}) (正常浏览器用这个) 元素.attachEvent("onclick",function(){}) (IE浏览器用这个)
11.元素.removeEventLister()和元素.detachEvent()
元素.removeEventLister() // 正常浏览器 元素.detachEvent() // IE浏览器
12.创建AJAX时的兼容:
XMLHttpRequest()
ActiveXObject("Microsoft,XMLHTTP")
语雀链接🔗 https://www.yuque.com/suihangadam
归来卧占楼千尺,梦落沧波明月舟。