js之event对象获取在FF和IE下的区别
2011-10-25 11:13
567 查看
摆脱各种库之后,我从代码中获取了更多的乐趣,编程能力也快速的提升。毫无疑问,各种问题也接踵而至。对于自成标准的IE,我始终向它投去钦佩的目光。我觉得一个人的学习成长和他的老师以及他的眼界密切相关,很庆幸我的老师之一是互联网,但是从这瀚海之中提取有用的知识,对新人来说并非易事。感谢那些才华横溢善于思考又愿意分享的前辈,我虽无才华,也愿意把实际经验分享出来,供新人参考和交流。
从我想给搜索框绑定一个“Enter”键便开始查询的事件开始。
我用了最传统的事件注册的办法:
var seat = document.getElementById("seat");//这是一个搜索输入框
seat.onkeydown = function(e){
var eve = (window.event)?window.event:e;
if(eve.keyCode == 13)//回车键
msea();//另一个函数
}
问题在第三行的地方,event对象在W3C和IE的模型中是不一样的。
在w3c的模型中,事件对象作为第一个参数被传递到当前事件的处理程序中;
在IE的模型中,事件的对象总是window.event。
firefox紧跟w3c标准,chrome则两者都支持。
所以第三行的三目运算符,若浏览器支持window.event[IE和chrome支持]则返回window.event,否则返回传入的参数e。
至此,跨越第一道门,兼容的获取到了不同浏览器的event对象。
我使用了一个匿名函数来注册事件,在有些情况下,这么做是一种很不错的选择。
还可以直接添加到html元素中作为一个属性:
function enter(e){
var eve = (window.event)?window.event:e;//可以去掉
if(eve.keyCode == 13)//回车键
msea();//另一个函数
}
这种情况下,传入的“event”参数就是当前的事件对象,也就不存在兼容性问题了,于是第二行处理w3c和IE间的兼容也就不需要了。这种直接写到html里的做法还能传入一个强大的参数“this”,js的this也很给力额,如果某次你发现自己怎么也找不到“this”了,那么这种办法暂时会是不错的选择。
从我想给搜索框绑定一个“Enter”键便开始查询的事件开始。
我用了最传统的事件注册的办法:
var seat = document.getElementById("seat");//这是一个搜索输入框
seat.onkeydown = function(e){
var eve = (window.event)?window.event:e;
if(eve.keyCode == 13)//回车键
msea();//另一个函数
}
问题在第三行的地方,event对象在W3C和IE的模型中是不一样的。
在w3c的模型中,事件对象作为第一个参数被传递到当前事件的处理程序中;
在IE的模型中,事件的对象总是window.event。
firefox紧跟w3c标准,chrome则两者都支持。
所以第三行的三目运算符,若浏览器支持window.event[IE和chrome支持]则返回window.event,否则返回传入的参数e。
至此,跨越第一道门,兼容的获取到了不同浏览器的event对象。
我使用了一个匿名函数来注册事件,在有些情况下,这么做是一种很不错的选择。
还可以直接添加到html元素中作为一个属性:
function enter(e){
var eve = (window.event)?window.event:e;//可以去掉
if(eve.keyCode == 13)//回车键
msea();//另一个函数
}
<input id="seat" type="text" onkeydown="enter(event)"/>
这种情况下,传入的“event”参数就是当前的事件对象,也就不存在兼容性问题了,于是第二行处理w3c和IE间的兼容也就不需要了。这种直接写到html里的做法还能传入一个强大的参数“this”,js的this也很给力额,如果某次你发现自己怎么也找不到“this”了,那么这种办法暂时会是不错的选择。
相关文章推荐
- js事件对象Event获取pageX,clientX,screenX,offsetX,layerX的方式与区别
- 兼容IE和FF下获取Event事件对象
- *windows.event对象在ie与ff中的区别**
- JS获取键盘事件 兼容FF,IE
- IE和FF下javascript获取网页及窗口大小的区别
- js 获取子节点函数 (兼容FF与IE)
- jquery 回车事件 【全局 某个控件】/ event.srcElement FF,IE区别
- js判断IE,获取event.keyCode,
- 获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
- jquery获取颜色在ie和ff下的区别示例介绍
- IE和FF之js 区别
- 兼容IE和FF:获取Referer的JS和PHP方法 及 PHP利用curl伪造IP和来路
- JS中几种获取对象宽度和高度的区别
- JS获取鼠标位置,兼容IE FF
- JS动态添加移除事件 和 获取Event (兼容IE和Firefox)
- js的setTimeout在IE和FF的区别.
- 解决js获取不到 dom.style.left 类似的属性( currentStyle(IE),defaultView(FF) 样式值 )
- IE和FF中js获取页面高度与宽度的对比
- js坐标位置详解 及获取(ie ff)
- JS 动态获取节点代码innerHTML分析 [IE,FF]