发信人: nonepassby(左右無人)
整理人: i_am_trueman(2003-10-22 16:31:06), 站内信件
|
<!--
最近有朋友不断提出脚本控制的问题,我想给朋友们说一下这几个脚本属性。
大家知道,浏览器对动作是以事件形式反应给脚本的,而其中最主要的事件就是键盘和鼠标事件,其中比较复杂的就是键盘事件,我今天就给大家介绍一下在处理键盘事件一些要点,相信对大家以后在编制脚本程序很有帮助:
首先:我们先确定window.event.srcElement,它指的是发生事件的控件,这是非常有用的一个属性,尤其是在用户不知道到底是哪个控件发生事件时非常有用,你可以在事件函数中用window.event.srcElement来捕捉到控件,使在多个控件共用一个函数即简单又方便。
然后是window.event.keyCode这也是一个非常重要的性,它用来捕捉的是事件发生时是按的是哪个键,不过要 注意它的值是因事件不同而不同的,关于这个,在我上次写的关于键值的脚本中有详细的说明,大家可以找来看看。
window.event.altKey、window.event.ctrlKey、window.event.shiftKey 是指是非同时按下alt、ctrl、shift键,这在某些场合是非常有用的。
现在大家已能捕捉到关键的一些信息(属性)了,然后你的脚本就可以根据这些信息来进行处理。
window.event.returnValue属性这时就出来了,大家都看出了它的意思了吧,对了,它是用来表示是不是取消这次输入,这在文本框的输入处理时非常有效,有时只允许输入数字,在分析后得到不是数字时就可以用window.event.reason=false来搞定它。现在事情完成了?不,还没有,原来在浏览器中事件有一种属性:冒泡属性,就是说在表格的keydown事件之后还会引起document的keydown事件,有时我们不想再使document的keydown事件发生,window.event.cancelBubble就派上用场了,用这句window.event.cancelBubble=false就把它的所有冒泡事件取消。
只要大家把这些属性掌握好,编出好的脚本检测程序就不是很难了
下面举一个简单的例子,大家可以体会到其中的妙处,编出自己需要的巧妙的脚本
-->
<script language=vbscript>
sub subKeyPress()
dim strObj,intkeycode
Set strObj=window.event.srcElement
strObj.style.background=yellow
intkeycode=window.event.keyCode
if intkeycode=97 then 'a 时
msgbox "你按下"&chr(intkeycode)&" 我不让你的document的keypress发生!"
window.event.cancelBubble=true
exit sub
end if
if intkeycode=98 then msgbox "这个值b我不让你得到!":window.event.returnValue=false:exit sub'按下b时
msgbox "你按下了"&chr(intkeycode)
End sub
sub document_onkeypress()'当发生keypress事件时
dim intkeycode
intkeycode=window.event.keyCode
strkey=chr(intkeycode)
msgbox "你按下的是"&strkey&" document事件"
end sub
</script>
<input type=text name=text1 onkeypress="subKeyPress()">
---- 網易之左右無人给我留言
为了与更多的朋友交流,我已申请脚本技术版版卒 |
|