JS setCapture 区域外事件捕捉


Posted in Javascript onMarch 18, 2010

不过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="width: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()
Javascript 相关文章推荐
Prototype 学习 Prototype对象
Jul 12 Javascript
Mootools 1.2教程 Fx.Tween的使用
Sep 15 Javascript
JS两种定义方式的区别、内部原理
Nov 21 Javascript
JavaScript中this的用法实例分析
Dec 19 Javascript
jQuery扩展+xml实现表单验证功能的方法
Dec 25 Javascript
JavaScript中object和Object的区别(详解)
Feb 27 Javascript
Javascript实现时间倒计时效果
Jul 15 Javascript
JS实现合并json对象的方法
Oct 10 Javascript
vue路由组件按需加载的几种方法小结
Jul 12 Javascript
微信小程序实现星星评价效果
Nov 02 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
Jul 31 Javascript
JS实现表单中点击小眼睛显示隐藏密码框中的密码
Apr 13 Javascript
小议Javascript中的this指针
Mar 18 #Javascript
jQuery each()方法的使用方法
Mar 18 #Javascript
jQuery each()小议
Mar 18 #Javascript
jquery ajax执行后台方法
Mar 18 #Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
Mar 18 #Javascript
javascript 验证日期的函数
Mar 18 #Javascript
12个非常有创意的JavaScript小游戏
Mar 18 #Javascript
You might like
PHP循环语句笔记(foreach,list)
2011/11/29 PHP
PHP反向代理类代码
2014/08/15 PHP
php递归函数怎么用才有效
2018/02/24 PHP
Laravel 实现在Blade模版中使用全局变量代替路径的例子
2019/10/22 PHP
三种检测iPhone/iPad设备方向的方法
2014/04/23 Javascript
纯JavaScript实现获取onclick、onchange等事件的值
2014/12/29 Javascript
JavaScript返回网页中超链接数量的方法
2015/04/03 Javascript
js实现点击链接后延迟3秒再跳转的方法
2015/06/05 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
bootstrap table配置参数例子
2017/01/05 Javascript
微信小程序使用Socket的实例
2017/09/19 Javascript
关于 angularJS的一些用法
2017/11/29 Javascript
vue.js绑定事件监听器示例【基于v-on事件绑定】
2018/07/07 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
vue1.0和vue2.0的watch监听事件写法详解
2018/09/11 Javascript
jQuery实现的自定义轮播图功能详解
2018/12/28 jQuery
浅谈vue在html中出现{{}}的原因及解决方式
2020/11/16 Javascript
[01:02]DOTA2上海特锦赛SHOWOPEN
2016/03/25 DOTA
[01:03:42]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python内建数据结构详解
2016/02/03 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
2018/04/10 Python
python数据持久存储 pickle模块的基本使用方法解析
2019/08/30 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
Python3常见函数range()用法详解
2019/12/30 Python
python爬取本站电子书信息并入库的实现代码
2020/01/20 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
浅析python函数式编程
2020/09/26 Python
菲律宾酒店预订网站:Hotels.com菲律宾
2017/07/12 全球购物
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
政治表现评语
2014/05/04 职场文书
中标通知书范本
2015/04/17 职场文书
同意转租证明
2015/06/24 职场文书
初中英语教学随笔
2015/08/15 职场文书
浅析MySQL如何实现事务隔离
2021/06/26 MySQL
Python中22个万用公式的小结
2021/07/21 Python
JS轻量级函数式编程实现XDM三
2022/06/16 Javascript