zl程序教程

您现在的位置是:首页 >  其他

当前栏目

JSsetCapture区域外事件捕捉

事件 区域 捕捉
2023-06-13 09:14:17 时间
不过setCapture不支持键盘事件,只能捕获以下鼠标事件:onmousedown、onmouseup、onmousemove、onclick、ondblclick、onmouseover和onmouseout。
  程序中主要是要捕获onmousemove和onmouseup事件。
  msdn的介绍中还说到setCapture有一个bool参数,用来设置在容器内的鼠标事件是否都被容器捕获。
    参数为true时(默认)容器会捕获容器内所有对象的鼠标事件,即容器内的对象不会触发鼠标事件(跟容器外的对象一样);
    参数为false时容器不会捕获容器内对象的鼠标事件,即容器内的对象可以正常地触发事件和取消冒泡。
  object.setCapture()当一个object的被setCapture后,他的方法将会被继承到整个文档进行捕获。当不需要把方法继承到整个文档捕获时,要用object.releaseCapture()来释放.
  Mozilla也有类似的功能,方法稍微不同
    window.captureEvents(Event.eventType)
    window.releaseEvents(Event.eventType)
  事例:
复制代码代码如下:

<HTML>
<BODY>
<divid="m_Div"style="width:200px;height:200px;border:1pxsolid#b0bca5;padding:2px"onclick="alert("Hello")">点一下IE的菜单或者按钮看看:)
又或者IE窗口外的地方</div>
<SCRIPTLANGUAGE="JavaScript">
<!--
document.getElementById("m_Div").setCapture()
//-->
</SCRIPT>
</BODY>
</HTML>

在调用setCapture()后,捕捉到事件后自动释放,如果在连续对事件捕捉,需要在调用的事件里再次执行setCaptuer()