当前位置:编程学习 > JS >>

关于javascript在ie firefox兼容详细说明(1/4)

*以下以 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; 

1 2 3 4
补充:网页制作,js教程 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,