var evt=arguments[0] || window.event
var ele=evt.srcElement || evt.target
alert(ele);在ie里都可以,但是在ff里按扭可以,为什么checkbox 不行。
等待...
var ele=evt.srcElement || evt.target
alert(ele);在ie里都可以,但是在ff里按扭可以,为什么checkbox 不行。
等待...
解决方案 »
- 图片间隔时间更换问题
- html中如何让一个textbox用tab无法切换到它
- 在ie下,可以的代码,可在firefox下不行.求帮助?
- ext 是否有updown控件
- 如何在编辑区域中显示上传文件的完整路径?
- 求一个英文加数字的验证代码
- javascript 各个版本之间有什么不同?
- 关于 window.open的问题???????????!!!!!!!!!!
- 不用windows.open(),document.open(),怎样控制一个网页的高和宽?在线等
- document.execCommand("Save","new.htm") 这条不能用吧?
- 求助--firefox如何显示disabled的text的title属性
- 字符串"{id:'123',bc:'44'}"如何转化为Object
你写的这个就是兼容的代码了。可能是对于FF,event对象必须通过参数传递,而不能直接引用。
而IE,可以不带参数直接在函数中使用event对象。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title>ie&ff</title>
<script type="text/javascript">
window.onload=function(){
document.getElementById("btn3").onclick=aa
document.getElementById("ck1").onclick=aa
} function aa(){
var evt=arguments[0] || window.event
var element=evt.srcElement || evt.target
alert(element.id)
}
</script>
</head>
<body>
<form>
<button id="btn3" >按钮</button>
<input id="ck1" type="checkbox" />
<button id="btn4" onclick="aa()">按扭</button>
</form>
</body>
</html>ok了,但是不明白这段代码有什么区别??大虾解释下....
btn3 和 btn4 的调用方式不同,然后在ff里,btn3 是ok的,但是btn4却不行。
当触发onclick事件时触发aa函数...
就是说
把aa交给了onclick事件.
当onclick触发时,系统将触发aa.在FF中如果aa没有参数的话,还会给aa传入参数到arguments[0],就是event对象..而IE event对象则放到了全局变量window.event中...如aa有设置要传入的参数的话,则通过默认函数执行aa,把event传递给默认函数的arguments[0];btn3很显然没有设置aa要传入的参数而btn4则设置了它不传参数即aa()
btn4要获取到event对象的方法,是通过aa函数找到执行它的函数,然后获取那个函数的arguments[0]简单的表示是
arguments.callee.caller.arguments[0]