截留事件冒泡宽容chrome,firefox,IE的秘技;

2019-12-01 02:04栏目:竞技宝竞猜
TAG:

复制代码 代码如下: $ { document.onkeydown = function { var e = event || window.event || arguments.callee.caller.arguments[0]; if { //to do something; } }; });

少之甚少说,先给艺术:

常有同事问作者在火狐浏览器怎么获取event的主意,相当多是想博得event.keyCode的法力三种艺术
率先种办法

function oCancelBubble()

{

var oEvent = arguments.callee.caller.arguments[0] || event;

oEvent.cancelBubble = true;

};

复制代码 代码如下:

上面来分解,上面的阻碍冒泡这么轻易;

function a(e){
e=e||window.event;
alert(e.keyCode);
}

意气风发:关于火狐(firefox卡塔尔及ie下event获取的三种情势

时偶然有同事问笔者在火狐浏览器怎么获取event的方法,多数是想拿到event.keyCode的作用二种方法

第意气风发种格局

复制代码代码如下:

function a(e){

e=e||window.event;

alert(e.keyCode);

}

其次种格局

复制代码代码如下:

function a(){

e=arguments.callee.caller.arguments[0] || window.event;

alert(e.keyCode);

}

ie和firefox下都如下调用

复制代码代码如下:

这里要解释一下

arguments.callee.caller.arguments[0],

简单易行例子如下:

复制代码代码如下:

function a(){

b();

}

function b(){

alert(b===arguments.callee)

alert(b.caller===a)

alert(arguments.callee.caller===a)

}

a();

下边包车型大巴这么些例子将出口3个true,注解当a(卡塔尔(قطر‎调用时,函数b与函数a的涉及。

arguments.callee

指的正是如今的函数体

arguments.callee.caller

不畏当下函数的上司函数

所以当推行onclick="a(卡塔尔(英语:State of Qatar)"时arguments.callee正是a(卡塔尔(قطر‎,

arguments.callee.caller就是function onclick

onclick的率先个能数就是event,也便是

arguments.callee.caller.arguments[0]

这个。

ie浏览器如下调用

复制代码 代码如下:

<body onclick="a()">

firefox火狐浏览器如下调用

版权声明:本文由龙竞技官网发布于竞技宝竞猜,转载请注明出处:截留事件冒泡宽容chrome,firefox,IE的秘技;