8月15号=》406页-410页
15.1.5 在代码中触发事件
除了可以让用户动作、窗口动作等触发JavaScript中的事件外,JavaScript还允许在脚本中触发事件,程序触发事件
与用户动作触发事件的效果完全相同。
代码示范:
//脚本代码
function test(){
alert("脚本事件");
}
function clickTest(){
//脚本内触发事件
test();
}
//html代码
<button click="clickTest()">测试</button>
点击测试按钮将会弹出脚本事件对话框。
15.2 Internet Explorer的事件模型
Internet Explorer包含了不少独有的事件特性,这些事件特性包括Internet Explorer自己的事件绑定机制,以及独有的事件传播机制等。
15.2.1 使用Script for绑定
Internet Explorer支持两种自己独有的事件绑定方法。这两种方法都不需要在HTML元素中增加额外的属性。
Microsoft扩展了<script/>元素,可以将它包含的脚本语句和某个元素的某个事件类型进行绑定,完成绑定的两个属性时for和event。
for属性的值必须是HTML文档中某个元素的id属性值,该属性值唯一地标识了该HTML元素。event属性值是该元素所支持的事件名称,
一旦为该script标签指定了这两个属性,就表明该标签内的所有脚本绑定了该元素的队友事件。
代码示范:
<input type="button" id="bn1" name = "bn1" value="单击我"/>
<script for = "bn1" event ="onclick" type="text/javascript">
alert("您单击了我");
</script>
15.2.2 使用attachEvent方法执行绑定
在W3C指定标准的事件模型之前,attachEvent()方法已经被实现了,并可被用于Internet Explorer 5.0以及更新的版本,该方法
可以作用于浏览器中的每个HTML元素。这种绑定方式与AWT、Swing事件绑定机制非常相似。
代码示范:
//脚本代码
var test = function()
{
alert("您单击了我");
}
document.getElementById("bn1").attachEvent("onclick",test);
//HTML代码
<input type="button" id="bn1" value="单击我">
15.2.3 访问事件对象
如果JavaScript脚本需要访问鼠标事件发生的位置、触发鼠标事件的鼠标键、触发键盘事件的键盘键,则需要访问事件对象。
Internet Explorer中的事件对象是一个隐示可用的全局对象:event,当一个事件在浏览器中发生时,浏览器创建一个隐示
可用的事件对象,JavaScript脚本通过event就可以访问该对象。
Internet Explorer中的事件对象有如下常用的属性。
type:返回发生的事件类型,例如“click”等。
srcElement:返回发生事件的HTML元素。
clientX:返回发生鼠标事件在页面中的X坐标。
clientY:返回发生鼠标事件在页面中的Y坐标。
offsetX:返回发生鼠标事件位置相对于事件源的X坐标。
offsetY:返回发生鼠标事件位置相对于事件源的Y坐标。
button:对于鼠标事件有效,返回发生鼠标事件时所用的鼠标键。
keyCode:对于键盘事件有效,返回发生键盘事件时所用的键盘键。
altKey:返回boolean值,用以确定事件发生时是否按下了Alt组合键。
ctrlKey:返回boolean值,用以确定事件发生时是否按下了Ctrl组合键。
shiftKey:返回boolean值,用以确定事件发生时是否按下了Shift组合键。
cancelBubble:阻止事件冒泡。
returnValue:返回事件处理函数的返回值。在整个事件传播链中,事件处理函数可以改变该值,当该值被设为false时,该事件的默认行为被取消。
formElement:对mouseover和mouseout两个事件有效,用于返回鼠标移出的HTML元素。
toElement:对于mouseover和mouseout两个事件有效,用于返回鼠标移入的HTML元素。
浙公网安备 33010602011771号