手工触发事件的原理相当简单,就是通过其他元素的方法来触发一个事件而不需要通过用户的动作来触发该事件。
如果某个对象的事件有其默认的处理器,此时再设置该事件的处理器时,将有可能出现意外的情况出现。
考察如下的代码:[code]<! DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0//EN”
“http://www.w3.org/TR/REC-html140/strict.dtd”>
[/code]程序运行后,单击“测试”按钮,触发表单的提交事件,并直接将表单提交给目标页面“target.asp”;单击表单默认触发提交事件的“确认”按钮,将弹出如图所示的警告框, 单击“确认”按钮后,将表单提交给目标页面“target.asp”
由上面提交表单的例子可以看出,当事件在事实上已包含导致事件发生的方法时,该方法不会调用有问题的事件处理器,而会导致与该方法对应的行为立即发生。
使用 JavaScript 脚本设置事件处理器时要分外小心,因为JavaScript 事件处理器是大小写敏感的。
设置目标对象中并不存在的事件的处理器将会给对象添加一个新的属性,而调用目标对象中并不存在的属性一般将导致页面运行错误。