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

看下以下代码在各浏览器下的结果:

复制代码 代码如下:

<body onclick="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:new Event(...)};所以在onclick里也可以直接用“event”来获取事件句柄。

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

复制代码 代码如下:

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

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

所以,使用QW的页面,可以直接这样写:

复制代码 代码如下:

<a href="#" onclick="EventH.preventDefault()">点我无效</div>

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

时间: 2024-09-11 22:36:24

window.event快达到全浏览器支持了,以后使用就方便了_javascript技巧的相关文章

让低版本浏览器支持input的placeholder属性(js方法)_javascript技巧

复制代码 代码如下: var doc = window.document, input = doc.createElement('input'); if( typeof input['placeholder'] == 'undefined' ) // 如果不支持placeholder属性 { $('input').each(function( ele ) { var me = $(this); var ph = me.attr('placeholder'); if( ph && !me.v

JS判断浏览器是否支持某一个CSS3属性的方法_javascript技巧

1.引子 css3的出现让浏览器的表现更加的丰富多彩,表现冲击最大的就是动画了,在日常书写动画的时候,很有必要去事先判断浏览器是否支持,尤其是在写CSS3动画库的时候.比如transition的animation-play-state,就只有部分浏览器支持. 2.检测方法 下面的方法可以使用脚本判断浏览器是否支持某一个CSS3属性: /** * 判断浏览器是否支持某一个CSS3属性 * @param {String} 属性名称 * @return {Boolean} true/false * @

javascript 跨浏览器开发经验总结(五) js 事件_javascript技巧

简单事件模型和高级事件模型 简单事件模型和高级事件模型简单事件,就是事件与页面元素直观的绑定在一起的形式,如: 复制代码 代码如下: <div onclick="alert(this.innerHTML);"> element.onclick = function(){alert(this.innerHTML);} 只要不是用了个别浏览器独有的事件,一般的click,mouseover事件等在各浏览器中都可以这么使用. 但是当一个事件需要绑定多个监听,或者需要动态注册/移出

基于JavaScript实现全屏透明遮罩div层锁屏效果_javascript技巧

废话不多说了,直接给大家写js代码了,代码如下所示: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <tit

js阻止浏览器默认行为触发的通用方法(推荐)_javascript技巧

js阻止浏览器默认行为触发的通用方法(推荐) //阻止浏览器默认行为触发的通用方法 function stopDefault(e){ //防止浏览器默认行为(W3C) if(e && e.preventDefault){ e.preventDefault(); } //IE中组织浏览器行为 else{ window.event.returnValue=fale; } return false; } 以上这篇js阻止浏览器默认行为触发的通用方法(推荐)就是小编分享给大家的全部内容了,希望能给

基于JavaScript判断浏览器到底是关闭还是刷新(超准确)_javascript技巧

本文是小编总结的一些核心内容,个人感觉对大家有所帮助,具体内容请看下文: 页面加载时只执行onload 页面关闭时只执行onunload 页面刷新时先执行onbeforeunload,然后onunload,最后onload. 经过验证我得出的结论是: //对于ie,谷歌,360: //页面加载时只执行onload //页面刷新时,刷新之前执行onbeforeunload事件,在新页面即将替换旧页面时onunload事件,最后onload事件. //页面关闭时,先onbeforeunload事件,

纯JavaScript实现的兼容各浏览器的添加和移除事件封装_javascript技巧

//事件处理兼容各种浏览器,采用能力检测方法,所谓能力检测,就是有能力就做,没有能力就不做 //定义一个处理事件的对象,兼容各种浏览器,dom2级事件处理和ie事件,如果这两个事件都不兼容,就采用dom0级处理 var eventUtil ={ addEvent:function(element,type,handler){ if (element.addEventListener) { //非IE浏览器采用dom2级事件处理,type为事件类型如:click,handler为事件处理函数,fa

IE浏览器兼容Firefox的JS脚本的代码_javascript技巧

1.window.event兼容脚本 2.屏蔽Form提交事件 3.获取事件源 4.添加事件兼容写法 5.Firefox注册innerText写法 6.长度 7.父控件下的子控件 8.XmlHttp 1.window.event兼容脚本 function getEvent(){ //获取浏览器事件,同时兼容ie和ff的写法 if(document.all) return window.event; func=getEvent.caller; while(func!=null){ var arg0

可以支持多中格式的JS键盘_javascript技巧

/*  * JavaScript Virtual Keyboard (ATM-style numpad variant), version 2.3  *  * Copyright (C) 2006-2007 Dmitriy Khudorozhkov  *  * This software is provided "as-is", without any express or implied warranty.  * In no event will the author be held