兼容IE和FF的js脚本做法和分解.docVIP

  • 1
  • 0
  • 约7.36千字
  • 约 10页
  • 2017-08-14 发布于河南
  • 举报
做BS开发就难免会用到javascript,而每个浏览器对javascript的支持有不同。这就需要我们程序员去兼容他们 下面是兼容IE和FF的js脚本做法和分解(部分选自网上,经本人整理),希望对大家有帮助。 /*以下以 IE 代替 Internet Explorer,以 MF/FF 代替 Mozzila Firefox */ //window.event IE:有window.event对象 FF:没有window.event对象。可以通过给函数的参数传递event对象。如onmousemove=doMouseMove(event) 解决方法:var event = event || window.event; example: script function test(event) { var event = event || window.event; //do Something } /script input type=button value=click onclick=test(event)/ //鼠标当前坐标 IE:event.x和event.y。 FF:event.pageX和event.pageY。 通用:两者都有event.clientX和event.clientY属性。 //鼠标当前坐标(加上滚动条滚过的距离) IE:event.offsetX和event.offsetY。 FF:event.layerX和event.layerY。 解决方法: script function test(event) { var event = event || window.event; //or var event = event ? event : window.event;//这2中都可以,也可以用if else(这简写) var x = event.offsetX || event.layerX; var y = event.offsetY || event.layerY; //do Something } /script div onmousedown=test(event)/div /**其他的兼容的解决方法类似,不再一一举例**/ //event.srcElement问题 说明:IE下,event对象有srcElement属性,但是没有target属性;Firefox下,even对象有target属性, 但是没有srcElement属性. 解决方法:使用obj(obj = event.srcElement ? event.srcElement : event.target;) 来代替IE下的event.srcElement或者 Firefox下的event.target. 请同时注意event的兼容性问题。 //event.toElement问题 问题: IE下,even对象有srcElement属性,但是没有target属性; Firefox下,even对象有target属性,但是没有srcElement属性 解决方法: var target = e.relatedTarget || e.toElement; //标签的x和y的坐标位置:style.posLeft 和 style.posTop IE:有。 FF:没有。 通用:object.offsetLeft 和 object.offsetTop。 //窗体的高度和宽度 IE:document.body.offsetWidth和document.body.offsetHeight。注意:此时页面一定要有body标签。 FF:window.innerWidth和window.innerHegiht, 以及document.documentElement.clientWidth和document.documentElement.clientHeight。 通用:document.body.clientWidth和document.body.clientHeight。 //添加事件 IE:element.attachEvent(onclick, functi

文档评论(0)

1亿VIP精品文档

相关文档