Javascript不同浏览器差异及兼容方法

javascript的各种兼容就是为了解决不同浏览器的差异性,了解其中的差异能够帮助你更快的解决问题,提高代码的使用质量,编写更优秀的javascript代码。

1.window.event

表示当前的时间对象,IE有这个对象,FF没有,FF通过给事件处理函数传递事件对象

2.获取事件源

  • IE用srcElement获取事件源

  • FF用target获取事件源

以上两个兼容通常会这么写:

var evt = e||event;

var el = evt.srcTarget || evt.srcElement;

3.添加、去除事件

4.获取标签的自定义属性

IE:div1.value或div1['value']

FF:可用div1.getAttribute("value")

5.document.getElemntByName()和document.all[name]

  • IE不可以
  • FF可以

6.input.type的属性

7.IE支持innerText、outerHTML

FF:支持textContent

8.窗口的位置

  • IE、chrome、safari:支持使用window.screenLeft和window.screenTop
  • IE8以上、chrome、safari、firefox:支持使用window.screenX和window.screenY

兼容代码可以使用下面这段代码:

var leftX = typeof window.screenLeft == 'number' ? window.screenLeft : window.screenX;

ver topY = typeof window.screenTop == 'number' ? window.screenTop : window.screenY;

9.窗口的大小

  • firefox、chrome、IE9和safari:window.innerWidth和window.innerHeight
  • IE系列:document.body.clientWidth和document.body.clientHeight
  • 不是IE6:document.documentElement.clientWidth和document.documentElement.clientHeight

兼容代码可以这样子写

 var width = window.innerWidth;

 var height = window.innerHeight;

 if(typeof width != 'number'){

 if(document.compatMode == 'CSS1Compat'){

 width = document.documentElement.clientWidth;

 height = document.docuementElement.clientHeight;

}else{

width = document.body.clientWidth;

height = document.body.clientHeight;

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 2,798评论 0 8
  • Ø JavaScript 3 1. HTML对象获取问题 32. const问题 33. event.x与even...
    横冲直撞666阅读 3,211评论 0 7
  • Ø JavaScript 3 HTML对象获取问题 3 const问题 3 event.x与event.y问题 3...
    DavieKong阅读 487评论 0 1
  • 人为什么会存在?这可能是一个问题,它没有什么目的,也没有什么期望,只是默默的承受着时间的反复碾压。它不曾有什么怨...
    湫麓阅读 271评论 0 0
  • 在人生的旅途中,十几岁时,说要好好读书,才能上好大学,于是我们放下兴趣奔上读书路.二十几岁时,说该成家了,...
    阿元阅读 1,366评论 0 1