zoukankan      html  css  js  c++  java
  • JS 区域外事件捕捉setCapture

      鼠标捕获(setCapture)作用是将鼠标事件捕获到当前文档的指定的对象。这个对象会为当前应用程序或整个系统接收所有鼠标事件。
      不过setCapture不支持键盘事件, 只能捕获以下鼠标事件:onmousedown、onmouseup、onmousemove、onclick、ondblclick、onmouseover和onmouseout。
      程序中主要是要捕获onmousemove和onmouseup事件。
      msdn的介绍中还说到setCapture有一个bool参数,用来设置在容器内的鼠标事件是否都被容器捕获。
        参数为true时(默认)容器会捕获容器内所有对象的鼠标事件,即容器内的对象不会触发鼠标事件(跟容器外的对象一样);

        参数为false时容器不会捕获容器内对象的鼠标事件,即容器内的对象可以正常地触发事件和取消冒泡。

      object.setCapture() 当一个object的被 setCapture 后,他的方法将会被继承到整个文档进行捕获。当不需要把方法继承到整个文档捕获时,要用 object.releaseCapture() 来释放.

      Mozilla 也有类似的功能,方法稍微不同
        window.captureEvents(Event.eventType)
        window.releaseEvents(Event.eventType)

      事例:

    代码
    <HTML> 
      
    <BODY> 
        
    <div id="m_Div" style="200px;height:200px;border:1px solid #b0bca5;padding:2px" onclick="alert('Hello')">点一下IE的菜单或者按钮看看:) 
    又或者IE窗口外的地方
    </div> 
        
    <SCRIPT LANGUAGE="JavaScript"> 
          
    <!-- 
            document.getElementById(
    "m_Div").setCapture() 
          
    //--> 
        </SCRIPT> 
      
    </BODY> 
    </HTML>

    在调用setCapture()后, 捕捉到事件后自动释放, 如果在连续对事件捕捉,需要在调用的事件里再次执行setCaptuer()

  • 相关阅读:
    webpack 4.X 基础编译
    一个数组中两个数的和为N,找出这两个数字的下标
    Mybatis自动生成,针对字段类型为text等会默认产生XXXXWithBlobs的方法问题
    Docker Mysql
    Docker镜像Push到DockerHub
    E: Unable to locate package git
    linux解压类型总结
    docker安装gitlab
    Docker应用
    解决github访问及上传慢的问题
  • 原文地址:https://www.cnblogs.com/hanf/p/1688980.html
Copyright © 2011-2022 走看看