IE8中使用setCapture的心得和坑
程序员文章站
2022-06-26 15:30:26
...
IE8中使用setCapture的心得和坑
首先这是我第一次发博客,我是非专业的学生,现在大四正在实习,在学习过程中遇到的问题我都会记录下来,比如这一次用到的setCapture()方法这是IE浏览器自带的,作用是:该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口。其实这个说的很晦涩难懂,其实就是你把setCapture绑定给一个元素,然后捕获到这个元素全部的鼠标按下的事件,那么整个浏览器中只会执行这个元素的鼠标按下的事件(例如:onmousedown、onmousemove、onclick)等等比如以下代码,我把setCapture绑定到div元素,当按钮触发了点击事件,setCapture就会执行,所以整个浏览器都会触发div元素的onclick事件,说直白点就是点了按钮,不管你点哪里都会触发onclick,但是只能触发一次。
<HTML>
<BODY>
<div id="m_Div" style="width:200px;height:200px;border:1px solid #999;padding:2px" onmousedown="alert('Hello~')">点一下IE的菜单或者按钮看看:)
又或者IE窗口外的地方</div>
<br>
<br>
<br>
<br>
<br>
<button id="btn">点我试试</button>
<SCRIPT LANGUAGE="JavaScript">
document.getElementById("m_Div").setCapture()
document.getElementById('btn').onclick = function (){
document.getElementById("m_Div").setCapture()//监听按下的事件
}
</SCRIPT>
</BODY>
</HTML>
下一篇: 人工智能爱好者寒假必读书目推荐(10本)