Heading for the future

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")
posted @ 2018-08-23 13:57  一只菜鸟攻城狮啊  阅读(232)  评论(0编辑  收藏  举报