怎样拦截IE事件
怎样拦截IE事件
――――――――――――――――――――――――――――――――――――――――――――――――
作者:段永义(dyydyy) 主页:http://ware.51.net 单位:中庐机 时间:2001-4-26
――――――――――――――――――――――――――――――――――――――――――――――――
经常上网朋友们可能都有这样的体验,你的鼠标的右击功能可能被拦截住,转页出现警告的对话框,或者被转移到添加到收藏夹等,而没有出现系统右键菜单。谁都知道这是script小程序产生的效果,下面我们来探讨一下此方面的内容。
要实现上述的效果,我们可以将它分为两个步骤:1.捕捉事件 2.事件转移。
――――――――――――――――――――――――――――――――――――――――――――――――
1.捕捉事件
(1).用vbscript捕捉事件相对来说,特别是对熟悉vb的朋友来说,那是再简单不过了,只要定义成以下的形式就可以了。
<script language=vbscript>
SUB 对象名_事件()
...
事件转移部分
...
END SUB
</script>
(2).而用javascipt写的script捕捉事件,理解起来就有的难度,但只要大家多用多理解多记,其实也很简单。
<script lnaguage=javascript for =对象名 event=事件>
...
事件转移部分
...
[return false;//如有必要,将事件断路]
</script>
用javascript写脚本还有下面一种方法
<script> file://language 缺省为javascript
对象名.事件=函数()//这个函数不管你是如何定义的,自编的,vbscript编写的,或是系统的(如alert),都可以。
</script>
在以上的两种情况中,需要注明的是,对象名既可以是window,document,也可以是用户自定义的对象。
如<div id=obj1>...</div>中的obj1。但有一点大家特别需要注意,对象与事件的搭配。如果此对象没有此事件,如将obj1与oncontextmenu搭配,将会引发牛头不对马嘴的事件??!
通用对象有以下两个:window、document
通用事件有:onclick,ondblclick,onkeypress,onmouseup,onmousedown ...,详细情况请参见MS网页调试工具。
一般地来说,自定义的对象都具有onclick,ondblclick,onmouseup,onmousedown事件。
――――――――――――――――――――――――――――――――――――――――――――――――
2.事件转移
事件转移就是功能实现过程。想玩什么花,八仙过海,各显神通。
下面介绍一个实例。锁定鼠右键菜单,包括键盘上菜单键,shift+F10功能均同样被锁定。
<script language=vbscript>
SUB document_oncontextmenu()
msgbox "右键系统菜单已被转移!"
END SUB
</script>
或:
<script for=document event=oncontextmenu>
alert("右键系统菜单已被转移!");
return false;
</script>
或:
<script>
function say(){alert("右键系统菜单已被转移!");return false;}
document.oncontextmenu=say();
</script>
最后一点:脚本应在<body>之前载入,以确保(尤其是在页面内容巨多情况)脚本语言的正确载入。
――――――――――――――――――――――――――――――――――――――――――――――――