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

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>