javascript变乱:获取变乱工具getEvent函数
在javascript开拓中我们会常常获取页面中的变乱工具,然其后处理赏罚这些变乱,譬喻下面的getEvent函数就是获取javascript下的页面变乱工具。 Copy to Clipboard引用的内容:[www.veryhuo.com] function getEvent(event){return event || window.event; } 我们行使getEvent的时辰可以这样挪用。 Copy to Clipboard引用的内容:[www.veryhuo.com] function foo(event){var evt = getEvent(event); alert(evt); } 而且把foo函数绑定到一个onclick变乱上。 return arguments[0] || window.event; } 这时在一些版本的赏识器,譬喻Firefox 中会呈现获取不到event工具的题目,着实我们可以当作变乱的触发是下面的方法: Copy to Clipboard引用的内容:[www.veryhuo.com] function onclick(event) {foo(); } 这样,第一个函数是onclick,即event会默认作为第一个参数传入,而foo函数没有将event作为参数传入,这样严峻限定了getEvent的机动性,以是我们必要修改下getEvent函数。 我们知道arguments.callee是函数自己,在匿名函数中可以作为递归行使,那么arguments.callee.caller指的是挪用本函数的上一级函数的函数。 以是我们的getEvent函数最终可以这样来写: Copy to Clipboard引用的内容:[www.veryhuo.com] function getEvent(){if(window.event){ return window.event; } var f = arguments.callee.caller; do{ var e = f.arguments[0]; if(e && (e.constructor === Event || e.constructor===MouseEvent || e.constructor===KeyboardEvent)){ return e; } }while(f=f.caller); } (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |