3-1b.常用js兼容IE和非IE方法
1.事件对象
IE:有window.event对象
FF:是通过给函数的参数传递event对象。
解决方法:var event = event || window.event;
2.鼠标当前坐标(常用)
IE:event.x和event.y。
FF:event.pageX和event.pageY。
解决方法:都有event.clientX和event.clientY属性。 注意只要出现clientX/Y就要加上滚动条距离;思考:如何当页面滚到底部,如何置顶。
3.鼠标当前坐标,当有滚动条,就会加上滚动条滚过的距离(不常用)
IE:event.offsetX和event.offsetY。
FF:event.layerX和event.layerY。
解决方法:
var x = event.offsetX || event.layerX;
var y = event.offsetY || event.layerY;
4.触发事件的对象
IE下,event是srcElement属性;
FF下,even是target属性;
解决方法:
obj = event.srcElement ? event.srcElement : event.target;
5.在mouseover事件中表示鼠标来自哪个元素和在mouseout事件中指向鼠标去往的那个元素
IE下,fromElement和toElement;
FF下,relatedTarget;
解决方法:
obj = event.relatedTarget || event.fromElement;
obj = event.relatedTarget || event.toElement;
6.html标签的x和y的坐标位置
IE:有style.posLeft 和 style.posTop offsetLeft/top
FF:offsetLeft/top
解决方法:通用object.offsetLeft 和 object.offsetTop。
7.窗体的高度和宽度
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。
8.标签的自定义属性
IE:如果给标签div1定义了一个属性value,可以div1.value和div1["value"]取得该值。
FF:不能用div1.value和div1["value"]取。
解决方法:通用obj.getAttribute("value")。
9.获取浏览器滚动条距离
非chrome:document.documentElement.scrollTop; chrome:document.body.scrollTop;
9.添加事件