zl程序教程

您现在的位置是:首页 >  前端

当前栏目

window.event快达到全浏览器支持了,以后使用就方便了

浏览器 使用 支持 window Event 方便 达到 以后
2023-06-13 09:14:31 时间
看下以下代码在各浏览器下的结果:
复制代码代码如下:

<bodyonclick="alert([window.event,event,this.event]);">test</body>

IE8:object,object,undefined
FF8.0:undefined,MouseEvent,undefined
Cr16:MouseEvent,MouseEvent,undefined
Opera:MouseEvent,MouseEvent,undefined
Safira:MouseEvent,MouseEvent,undefined

除FF8外,其它浏览器都已经支持window.event了

ff8似乎在调用事件时with了一个{event:newEvent(...)};所以在onclick里也可以直接用“event”来获取事件句柄。

另:好奇同学在QWrap的Event里供了一个QW.EventH.getEvent的静态方法,用来在各种情况下获取当前的事件对象,代码如下:
复制代码代码如下:

/**
*获得event对象
*@methodgetEvent
*@param{event}event(Optional)event对象默认为调用位置所在宿主的event
*@param{element}element(Optional)任意element对象element对象所在宿主的event
*@return{event}event对象
*/
getEvent:function(event,element){
if(event){
returnevent;
}elseif(element){
if(element.document){returnelement.document.parentWindow.event;}
if(element.parentWindow){returnelement.parentWindow.event;}
}

if(window.event){
returnwindow.event;
}else{
varf=arguments.callee;
do{
if(/Event/.test(f.arguments[0])){returnf.arguments[0];}
}while(f=f.caller);
}
},

所以,使用QW的页面,可以直接这样写:
复制代码代码如下:
<ahref="#"onclick="EventH.preventDefault()">点我无效</div>

即:调用preventDefault时,不必传入event实例。