JavaScript获取事件对象

piaoling  2011-07-14 10:58:43

IE中事件对象是window的一个属性,在标准DOM中,事件对象是处理函数的一个参数。
测试1:

<button id="but">按钮</button>
<script type="text/javascript">
    var but = document.getElementById("but");
    function func(){
        var e = window.event || arguments[0];
        alert(e.type);
    }
    if(window.attachEvent)
        but.attachEvent("onclick",func);
    else
        but.addEventListener("click",func,false);
</script>

测试2:


<button id="but">按钮</button>
<script type="text/javascript">
    document.getElementById("but").onclick = func;
    function func(){
        var e = window.event || arguments[0];
        alert(e.type);
    }
</script>

测试3:


<button id="but" onclick="func();">按钮</button>
<script type="text/javascript">
    function func(){
        var e = window.event || arguments[0];
        alert(e.type);
    }
</script>


在测试1和测试2中,IE和Firefox都能输出"click";而在测试3中,只有IE能输出“click”,Firefox中提示错误“e is undefined”。 要使在Firefox中也能捕获到事件,需给函数添加参数,即<button id="but" onclick="func(event);">按钮</button>,实际上此时在任何浏览器中都能捕获到事件对象,不需要在针对 不同浏览器作判断了。

类别 :  JS(21)  |  浏览(5315)  |  评论(0)
发表评论(评论将通过邮件发给作者):

Email: