javascript 区域外事件捕捉setCapture

发布时间:2019-07-11 22:00:12发布者:Mr.Zhang阅读(515)

今天遇到了这个方法,便去度娘了解了下

函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口。

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

setCapture捕获以下鼠标事件:onmousedown、onmouseup、onclick、ondblclick、onmouseover和onmouseout。程序中主要是要捕获onmousemove和onmouseup事件。
 
参数为false时容器不会捕获容器内对象的鼠标事件,即容器内的对象可以正常地触发事件和取消冒泡。
 
DEMO: 网上很多DEMO说setCapture用于鼠标拖动元素,实际测试有没有setCapture都不影响拖动功能,后来发现setCapture是用来取消其他的拖动事件,比如文字选择。
 
注意:谷歌浏览器不支持该函数 obj.setCapture && obj.setCapture(),包括使用谷歌内核的世界之窗浏览器。




本文转自博客园,原文地址:https://www.cnblogs.com/BambooLamp/p/11171258.html