Js获取事件对象代码


Posted in Javascript onAugust 05, 2010

一般做法:

<input type="button" id="test" value="点我测试" /> 
<script type="text/javascript"> 
var testBtn = document.getElementById('test'); 
testBtn.onclick = testFun; 
function testFun(e) 
{ 
var evt = e || window.event; 
alert(evt); 
} 
</script>

或者:
<input type="button" id="test" value="点我测试" /> 
<script type="text/javascript"> 
var testBtn = document.getElementById('test'); 
if(window.addEventListener) 
{ 
testBtn.addEventListener('click', testFun, false); 
} 
else if(window.attachEvent) 
{ 
testBtn.attachEvent('onclick', testFun); 
} 
function testFun(e) 
{ 
var evt = e || window.event; 
alert(evt); 
} 
</script>

返回的值都是 “[object Event]“。
但如果是这种方式呢?
<input type="button" id="test_1" value="点我测试" onclick="testFun_1()" /> 
<script type="text/javascript"> 
function testFun_1() 
{ 
//此处如何获得? 
} 
</script>

“内事不决问百度,外事不决问谷歌”, 此言不虚。搜索了下,答案还真不少,不过大多数雷同(可能是巧合)。
https://3water.com/article/19408.htm
http://www.cnblogs.com/cuixiping/archive/2008/04/13/1150847.html
愚公 的这个文章(貌似转帖)还是颇有见解的。
<input type="button" id="test_1" value="点我测试" onclick="testFun_1()" /> 
<script type="text/javascript"> 
function testFun_1() 
{ 
var evt = getEvent(); 
alert(evt); 
} 
function getEvent(){ 
if(window.event) return window.event; //这里用对象检测更为妥当 
func=getEvent.caller; 
while(func!=null){ 
var arg0=func.arguments[0]; 
if(arg0){ 
if((arg0.constructor==Event || arg0.constructor ==MouseEvent) 
|| (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){ 
return arg0; 
} 
} 
func=func.caller; 
} 
return null; 
} 
</script>

一般来说,很少用到这种嵌入式的写法(js写在html标签中 onclick="testFun_1()"),也不推荐使用这种方法,会造成维护和开发的麻烦。
Javascript 相关文章推荐
ext实现完整的登录代码
Aug 08 Javascript
JavaScript 事件系统
Jul 22 Javascript
javascript图片相似度算法实现 js实现直方图和向量算法
Jan 14 Javascript
js获取判断上传文件后缀名的示例代码
Feb 19 Javascript
jQuery实现带有洗牌效果的动画分页实例
Aug 31 Javascript
JS实现自动变换的菜单效果代码
Sep 09 Javascript
javascript实现tab切换的两个实例
Nov 05 Javascript
ES6入门教程之Iterator与for...of循环详解
May 17 Javascript
Angularjs实现页面模板清除的方法
Jul 20 Javascript
layer弹出层全屏及关闭方法
Aug 17 Javascript
layer提示框添加多个按钮选择的实例
Sep 12 Javascript
在微信小程序中使用mqtt服务的方法
Dec 13 Javascript
zeroclipboard复制到剪切板的flash
Aug 04 #Javascript
jQuery Study Notes学习笔记 (二)
Aug 04 #Javascript
JQuery Study Notes 学习笔记(一)
Aug 04 #Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
Aug 03 #Javascript
基于jquery的让textarea自适应高度的插件
Aug 03 #Javascript
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
Aug 03 #Javascript
jQuery的实现原理的模拟代码 -3 事件处理
Aug 03 #Javascript
You might like
使用PHP接受文件并获得其后缀名的方法
2015/08/05 PHP
php fseek函数读取大文件两种方法
2016/10/12 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
JavaScript 全角转半角部分
2009/10/28 Javascript
window.event快达到全浏览器支持了,以后使用就方便了
2011/11/30 Javascript
poshytip 基于jquery的 插件 主要用于显示微博人的图像和鼠标提示等
2012/10/12 Javascript
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
javascript时间函数大全
2014/06/30 Javascript
基于promise.js实现nodejs的promises库
2014/07/06 NodeJs
编程语言JavaScript简介
2014/10/16 Javascript
全面解析Bootstrap中form、navbar的使用方法
2016/05/30 Javascript
JS实现的幻灯片切换显示效果
2016/09/07 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
2017/07/12 jQuery
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
2017/12/23 Javascript
vue中实现图片和文件上传的示例代码
2018/03/16 Javascript
Vue中的$set的使用实例代码
2018/10/08 Javascript
vue webpack重写cookie路径的方法
2019/07/10 Javascript
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
2016/04/13 Python
python监控文件并且发送告警邮件
2018/06/21 Python
Python函数和模块的使用总结
2019/05/20 Python
pandas 层次化索引的实现方法
2019/07/06 Python
python中count函数简单用法
2020/01/05 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
2020/02/14 Python
Python2.6版本pip安装步骤解析
2020/08/17 Python
python实现图片转字符画的完整代码
2021/02/21 Python
澳大利亚首个在线预订旅游网站:Wotif
2017/07/19 全球购物
美国职棒大联盟的官方手套、球和头盔:Rawlings
2020/02/15 全球购物
新锐科技Java程序员面试题
2016/07/25 面试题
自我鉴定的范文
2013/10/03 职场文书
好习惯伴我成长演讲稿
2014/05/21 职场文书
食堂标语大全
2014/06/11 职场文书
应用外语系自荐信
2014/06/26 职场文书
英语投诉信范文
2015/07/03 职场文书
给校长的建议书范文
2015/09/14 职场文书
Meta增速拉垮,元宇宙难当重任
2022/04/29 数码科技
windows系统搭建WEB服务器详细教程
2022/08/05 Servers