欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

javascript 区域外事件捕捉setCapture

程序员文章站 2022-08-17 14:13:00
今天遇到了这个方法,便去度娘了解了下 函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口。 setCa ......

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

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

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

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