js setCapture

"事件"捕获:setCapture  把所有元素都集中在一个元素上

特点:1、ie独有

    2、只能给酸雨添加捕获

    3、只能给鼠标事件添加捕获  不能给键盘事件添加

oDiv.setCapture()   oDiv.releaseCapture()

鼠标捕获(setCapture)作用是将鼠标事件捕获到当前文档的指定的对象。这个对象会为当前应用程序或整个系统接收所有鼠标事件。

不过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> 
<div id="m_Div" onclick="alert('Hello')">点一下IE的菜单或者按钮看看:) 
又或者IE窗口外的地方</div> 
<SCRIPT LANGUAGE="JavaScript"> 
<!-- 
document.getElementById("m_Div").setCapture() 
//--> 
</SCRIPT> 
</BODY> 
</HTML>

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


posted @ 2015-03-24 16:44  醉酒笑红尘  阅读(428)  评论(0)    收藏  举报