function document_onKeyDown(){
if (window.attachEvent) {
//IE and Opera, IE on keydown event need use document element
document.attachEvent("onkeydown", receivablePanel_onKeyDown);
return true;
} else if (window.addEventListener) {
window.addEventListener("keydown", receivablePanel_onKeyDown, true);
return true;
} else {
document.addEventListener("keydown", receivablePanel_onKeyDown, true);
return true;
}
}
首先是判断用的是什么浏览器.每个浏览器都有自己的注册事件的方法.一般标准的注册方法是addEventListener;而ie采用了不标准的方法attachEvent.所以通过判断有没有这2个方法可以简单的判断出用的是IE还是标准的(FF,chrome).
PS:IE9也可以采用addEventListener的方式来注册.这是新加的
http://msdn.microsoft.com/en-us/library/ff975245(v=vs.85).aspx
然后就是需要注意下用attachEvent注册的时候event name必须写全,也就是onxxx,这个是microsoft的标准.
最后需要注意的是addEventListener的第3个参数,useCapture.
官方给出的解释是:
As to the true or false that is the last argument of addEventListener, it is meant to state whether the event handler should be executed in the capturing or in the bubbling phase. If you’re not certain whether you want capturing or bubbling, use false (bubbling).
http://www.quirksmode.org/js/events_advanced.html
如果希望handler method在冒泡中执行就传false,希望被捕获执行就用true.冒泡的意思是按照event order依次执行.这会带来一定的困惑.有的时候不需要执行的事就会去执行,譬如form的entry submit.
分享到:
相关推荐
Cross-Browser Rich Text Editor一款比较简单的可视化HTML编辑器
How to Get a Cross-Browser Reference to an HTML Object
最新cross-request3.0插件下载,下载完成后解压,在Chrome中选择加载已解压的插件进行安装。
cross-request 3.1
Write native cross-platform applications with Xamarin Design user interfaces that can be shared across Android, iOS, and Windows Phone using Xamarin.Forms Practical cross-platform development ...
C# 7 and .NET Core: Modern Cross-Platform Development - Second Edition by Mark J. Price English | 24 Mar. 2017 | ASIN: B01N8UG78Q | 594 Pages | AZW3 | 23.26 MB Modern Cross-Platform Development ...
cross-env-7.0.3.zip
cross-request3.0.0插件,支持chrome、火狐等浏览器,下载解压后,通过加载已解压扩张程序添加即可
cross-request 3.1 YApi 跨域请求 谷歌浏览器
首次使用Yapi的时候,需要安装cross-request插件,请求是通过本地的cross-request插件发送出去的。解压该压缩包-->Google Chrome-->扩展程序-->加载已解压的扩展程序-->选中cross-request文件夹就可以啦
cross-request YApi 跨域请求
Cross-browser-event.jsjs基础事件跨浏览器兼容性
最新cross-request3.0插件下载,下载完成后解压,在Chrome中选择加载已解压的插件进行安装。
该论文讲述了跨浏览器兼容性测试得理论以及开发的工具crossT
discovRE: Efficient Cross-Architecture Identification of Bugs in Binary Code是发表在NDSS'16会议上的论文。本文在SP'15的基础上提出了在效率和效果上都有提高的跨架构二进制代码漏洞检测方案。 Abstract & ...
使用YApi,在线调取接口时,需要在谷歌浏览器安装插件。解压之后,将cross-request.crx文件拖到谷歌浏览器的扩展程序页面,确认即可。
Zhang_Cross-Scene_Crowd_Counting_2015_CVPR_paper.pdf
yapi 上传文件、测试请求cookie问题
Yapi3.3 Chrome 插件 cross-request3.3