百度首页 | 百度空间
 
查看文章
 
兼容IE和FF的事件处理函数
2008-04-29 14:03
  1. 在ie中,事件对象是作为一个全局变量来保存和维护的。 所有的浏览器事件,不管是用户触发
    的,还是其他事件, 都会更新window.event 对象。 所以在代码中,只要轻松调用 window.event
    就可以轻松获取 事件对象, 再 event.srcElement 就可以取得触发事件的元素进行进一步处理
  2. 在ff中, 事件对象却不是全局对象,一般情况下,是现场发生,现场使用,ff把事件对象自动传
    递给对应的事件处理函数。       在代码中,函数的第一个参数就是ff下的事件对象了。

<button id="btn1">按钮1</button>


<script>
window.onload=function(){
document.getElementById("btn1").onclick=foo
</script>

function foo()

{    //同时兼容ie和ff的写法,取事件对象
     alert(arguments[0] || window.event)  // ie 和 ff下,都显示 "[object]"
    var evt=arguments[0] || window.event
    var element=evt.srcElement || evt.target  //在 ie和ff下   取得 btn3对象
     alert(element.id)           //     btn3
}

FF下面,会自动传递一个参数....

<button id="btn" onclick="foo(event)">按钮</button>

onclick="foo()"   就是直接执行了, foo() 函数,没有任何参数的,
这种情况下 firefox没有机会传递任何参数给foo
而 btn.onclick=foo   这种情况, 因为不是直接执行函数,firefox才有机会传参数给foo


类别:Js | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu