JavaScript Event学习第三章:早期的事件处理程序
在这一章我会谈到一些最古老的添加事件处理程序的方法,这些方法甚至被第二代浏览器所支持。
这些古老的浏览器只支持一种注册事件处理程序的方法,这个方法是Netscape发明的。因为Netscape先发制人,所以如果微软也想做支持JavaScript事件的浏览器就得跟着Netscape走,所以这里没有兼容性的问题。所以这种模式在任何支持JavaScript的浏览器都能运行---除了Mac上的IE3,他根本就不支持事件。 注册事件处理程序 <A HREF="somewhere.html" onClick="alert('I've been clicked!')"> 当这个链接上发生单击事件的时候,事件处理程序就被触发然后执行你的脚本:一个警告对话框弹出。你也可以触发一个JavaScript函数: <A HREF="somewhere.html" onClick="doSomething()"> 上面两个例子里面事件的名字的大小写只是一个习惯问题,HTML是大小写不敏感的,所以你想怎么写都可以。XHTML要求所有的属性名称必须都是小写,所以如果你使用的XHTML那么名字就要写成onclick。 不要用他 所以我强烈建议你不要使用这种方法。在这里我有详细的解释。 理解这些旧的模型对于JavaScript事件处理的全局感有很大帮助,但是你最好还是使用我后面说明的现代模式。 默认动作 众所周知,当用户点击了一个链接浏览器就会按照href的属性加载页面。这是链接上的默认动作。但是当你定义了一个onclick事件处理程序了以后会发生什么呢?应该能被执行,但是什么时候呢? <A HREF="somewhere.html" onClick="doSomething()"> 如果在这个链接上单击,那么事件处理程序一定会被首先执行。毕竟当默认动作发生--新页面加载--旧的页面包括事件处理程序本身都会从内存中清除。如果onclick的事件处理程序执行了,那么一定是在默认动作之前。 这就有了一个非常重要的原理。如果一个事件同时触发了默认动作和事件处理程序,那么: 阻止默认事件 所以事件处理程序可以返回一个布尔值(ture或者false),false的含义就是“不要进行默认动作”。这样我们就可以把例子改成: <A HREF="somewhere.html" onClick="doSomething(); return false"> 这个链接就不会跟着执行了。这个函数执行之后程序返回false,告诉浏览器不要执行默认动作。 有时候有必要让函数决定什么时候该执行什么时候不该执行默认动作。所以我们可以把例子改成: <A HREF="somewhere.html" onClick="return doSomething()">
(编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |