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 相关文章推荐
解决 firefox 不支持 document.all的方法
Mar 12 Javascript
可实现多表单提交的javascript函数
Aug 01 Javascript
flexigrid 类似ext grid的JS表格代码
Jul 17 Javascript
js实现仿QQ秀换装效果的方法
Mar 04 Javascript
基于AngularJS实现页面滚动到底自动加载数据的功能
Oct 16 Javascript
javascript 判断一个对象为数组的方法
May 03 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
Sep 11 Javascript
使用vue-router完成简单导航功能【推荐】
Jun 28 Javascript
React如何解决fetch跨域请求时session失效问题
Nov 02 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
Sep 18 Javascript
jQuery实现的图片点击放大缩小功能案例
Jan 02 jQuery
javascript实现倒计时关闭广告
Feb 09 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
分享下页面关键字抓取components.arrow.com站点代码
2014/01/30 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
详解php curl带有csrf-token验证模拟提交方法
2018/04/18 PHP
Laravel框架表单验证操作实例分析
2019/09/30 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
2019/10/04 PHP
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
jquery移动listbox的值原理及代码
2013/05/03 Javascript
AngularJS+Node.js实现在线聊天室
2015/08/28 Javascript
jquery判断当前浏览器的实现代码
2015/11/07 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
2015/12/07 Javascript
jQuery使用$.ajax进行即时验证实例详解
2015/12/11 Javascript
Jquery ajax请求导出Excel表格的实现代码
2016/06/08 Javascript
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
AngularJS学习笔记之表单验证功能实例详解
2017/07/06 Javascript
JS实现的小火箭发射动画效果示例
2018/12/08 Javascript
vue和小程序项目中使用iconfont的方法
2020/05/19 Javascript
javascript实现滚轮轮播图片
2020/12/13 Javascript
Python列表计数及插入实例
2014/12/17 Python
python抓取并保存html页面时乱码问题的解决方法
2016/07/01 Python
python排序函数sort()与sorted()的区别
2018/09/18 Python
浅谈pandas用groupby后对层级索引levels的处理方法
2018/11/06 Python
关于Python内存分配时的小秘密分享
2019/09/05 Python
Python中实现输入超时及如何通过变量获取变量名
2020/01/18 Python
在python3中实现更新界面
2020/02/21 Python
Pycharm安装第三方库失败解决方案
2020/11/17 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
美国户外生活方式品牌:Eddie Bauer
2016/12/28 全球购物
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
公交公司毕业生求职信
2014/02/15 职场文书
幼儿园教师岗位职责
2014/03/17 职场文书
竞聘书模板
2014/03/31 职场文书
2015大学生求职信范文
2015/03/20 职场文书
卫生院艾滋病宣传活动总结
2015/05/09 职场文书
2015年信息宣传工作总结
2015/05/26 职场文书
Python提取PDF指定内容并生成新文件
2021/06/09 Python
使用PostGIS完成两点间的河流轨迹及流经长度的计算(推荐)
2022/01/18 PostgreSQL