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()

  • 相关阅读:
    Electron dialog 对话框的使用
    Electron BrowserView 的使用
    自动化测试相关
    使用chrome开发者工具中的performance面板解决性能瓶颈
    Electron window.open 函数 和 Browser-window-proxy 对象的使用
    Electron webview 标签
    Electron File对象
    Electron 进程
    JAVA日报
    JAVA日报
  • 原文地址:https://www.cnblogs.com/hanf/p/1688980.html
Copyright © 2011-2022 走看看