javascript 区域外事件捕捉setCapture
今天遇到了这个方法,便去度娘了解了下
函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口。
setCapture作用是将鼠标事件捕获到当前文档的指定的对象。这个对象会为当前应用程序或整个系统接收所有鼠标事件。使用releaseCapture()释放。
setCapture捕获以下鼠标事件:onmousedown、onmouseup、onclick、ondblclick、onmouseover和onmouseout。程序中主要是要捕获onmousemove和onmouseup事件。
参数为false时容器不会捕获容器内对象的鼠标事件,即容器内的对象可以正常地触发事件和取消冒泡。
DEMO:网上很多DEMO说setCapture用于鼠标拖动元素,实际测试有没有setCapture都不影响拖动功能,后来发现setCapture是用来取消其他的拖动事件,比如文字选择。
注意:谷歌浏览器不支持该函数 obj.setCapture && obj.setCapture(),包括使用谷歌内核的世界之窗浏览器。
------------ 就像竹林的灯火,被风吹过,摇摇曳曳,但永不熄灭! ------------------------