javascript 區域外事件捕捉setCapture

今天遇到了這個方法,便去度娘瞭解了下瀏覽器

函數功能:該函數在屬於當前線程的指定窗口裏設置鼠標捕獲。一旦窗口捕獲了鼠標,全部鼠標輸入都針對該窗口,不管光標是否在窗口的邊界內。同一時刻只能有一個窗口捕獲鼠標。若是鼠標光標在另外一個線程建立的窗口上,只有當鼠標鍵按下時系統纔將鼠標輸入指向指定的窗口。函數

setCapture做用是將鼠標事件捕獲到當前文檔的指定的對象。這個對象會爲當前應用程序或整個系統接收全部鼠標事件。使用releaseCapture()釋放。測試

setCapture捕獲如下鼠標事件:onmousedown、onmouseup、onclick、ondblclick、onmouseover和onmouseout。程序中主要是要捕獲onmousemove和onmouseup事件。
 
參數爲false時容器不會捕獲容器內對象的鼠標事件,即容器內的對象能夠正常地觸發事件和取消冒泡。
 
DEMO網上不少DEMO說setCapture用於鼠標拖動元素,實際測試有沒有setCapture都不影響拖動功能,後來發現setCapture是用來取消其餘的拖動事件,好比文字選擇。
 
注意:谷歌瀏覽器不支持該函數 obj.setCapture && obj.setCapture(),包括使用谷歌內核的世界之窗瀏覽器。
相關文章
相關標籤/搜索