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 相关文章推荐
js cookies 常见网页木马挂马代码 24小时只加载一次
Apr 13 Javascript
Javascript 获取滚动条位置等信息的函数
Sep 08 Javascript
clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析
Mar 12 Javascript
Jquery 一次处理多个ajax请求的代码
Sep 02 Javascript
基于jquery的web页面日期格式化插件
Nov 15 Javascript
子页向父页传值示例
Nov 27 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
Feb 21 Javascript
从零学JSON之JSON数据结构
May 19 Javascript
javascript 10进制和62进制的相互转换
Jul 31 Javascript
JS基于Ajax实现的网页Loading效果代码
Oct 27 Javascript
javaScript实现滚动条事件详解
Mar 24 Javascript
详解小程序退出页面时清除定时器
Apr 28 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+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
PHP匿名函数(闭包函数)详解
2019/03/22 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
PHP mkdir创建文件夹实现方法解析
2020/11/13 PHP
通过隐藏option实现select的联动效果
2009/11/10 Javascript
js中复制行和删除行的操作实例
2013/06/25 Javascript
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
深入分析jQuery的ready函数是如何工作的(工作原理)
2015/12/17 Javascript
jQuery实现侧浮窗与中浮窗切换效果的方法
2016/09/05 Javascript
如何使用headjs来管理和异步加载js
2016/11/29 Javascript
JS实现数组去重复值的方法示例
2017/02/18 Javascript
jQuery Tree Multiselect使用详解
2017/05/02 jQuery
Angularjs 与 bower安装和使用详解
2017/05/11 Javascript
在页面中引入js的两种方法(推荐)
2017/08/29 Javascript
es6数值的扩展方法
2019/03/11 Javascript
详解js实时获取并显示当前时间的方法
2019/05/10 Javascript
[03:17]史诗级大片应援2018DOTA2国际邀请赛 致敬每一位坚守遗迹的勇士
2018/07/20 DOTA
[00:56]跨越时空加入战场 全新祈求者身心“失落奇艺侍祭”展示
2019/07/20 DOTA
python简单分割文件的方法
2015/07/30 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
2018/02/08 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
Python元组常见操作示例
2019/02/19 Python
Python 调用 Windows API COM 新法
2019/08/22 Python
解析Python3中的Import
2019/10/13 Python
python3常用的数据清洗方法(小结)
2019/10/31 Python
Pytorch实现各种2d卷积示例
2019/12/30 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
2020/04/24 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
Napapijri西班牙在线商店:夹克、外套、运动衫等
2020/11/05 全球购物
大学军训感想
2014/02/12 职场文书
六年级学生评语
2014/04/22 职场文书
秋天的雨教学反思
2014/04/27 职场文书
2014年个人业务工作总结
2014/11/17 职场文书
专家推荐信怎么写
2015/03/25 职场文书
Python基础知识之变量的详解
2021/04/14 Python
为什么代码规范要求SQL语句不要过多的join
2021/06/23 MySQL