JavaScript Event学习第六章:事件的访问
在这一章我会讲解如何去访问一个事件对象。
现在我们已经注册了事件处理程序,对于事件我们还想更深入的了解。我们想知道事件发生时候的鼠标位置,我们想知道用户按下了哪些键。这些都是可能的,虽然这部分有很多烦人的浏览器兼容性问题。(这里可以快速查看浏览器兼容性列表)。 要读出事件的属性,必须要先能访问到事件。 浏览器兼容性 if (W3C/Netscape) {<BR> use W3C/Netscape model for access and property names<BR>}<BR>else if (Explorer) {<BR> use Microsoft model for access and property names<BR>}<BR> 这样是不正确的解决兼容性问题的办法,他会让一些能执行大部分代码但是没有考虑到的浏览器失去作用。所以我们得先访问一个事件然后再分别读取他的属性。 我们先来讨论访问事件的问题,事件属性会在后面讨论。 W3C/Netscape element.onclick=doSomething;<BR> doSomething()就会把事件当做一个参数。习惯上保存在一个e变量中,当然你可以改成任何名字: function doSomething(e) {<BR> // e gives access to the event<BR>}<BR> 这是完全自动的,不需要其他的代码。在匿名函数中你可以这样写: element.onclick = function (e) {alert('Event type is ' + e.type)}<BR> 微软 element.onclick = doSomething;<BR><BR>function doSomething() {<BR> // window.event gives access to the event<BR>}<BR> 或者 element.onclick = function () {alert('Event type is ' + window.event.type)}<BR> Event和event 跨浏览器的事件访问 element.onclick = doSomething;<BR><BR>function doSomething(e) {<BR> if (!e) var e = window.event;<BR> // e gives access to the event in all browsers<BR>}<BR> 如果e不存在那么就给他赋值window.event。现在e在所有浏览器里面都表示事件。 与内联式的事件处理程序合并 <pre onclick="doSomething(event)"><BR><BR>function doSomething(e) {<BR> alert(e.type);<BR>}<BR> 虽然在微软模型里(window.)event是正确的属性,其他浏览器也能识别。 如果你想继续学习,请看下一章。 原文地址:http://www.quirksmode.org/js/events_access.html (编辑:源码门户网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |