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 相关文章推荐
jQuery 开天辟地入门篇一
Dec 09 Javascript
javascript实现yield的方法
Nov 06 Javascript
用IE重起计算机或者关机的示例代码
Mar 10 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
Apr 03 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
Dec 30 Javascript
javascript类型系统_正则表达式RegExp类型详解
Jun 24 Javascript
JavaScript中this的四个绑定规则总结
Sep 26 Javascript
Bootstrap缩略图与警告框学习使用
Feb 08 Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
Oct 26 Javascript
微信头像地址失效踩坑记附带解决方案
Sep 23 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
Oct 14 Javascript
JavaScript函数柯里化
Nov 07 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与flash as3 socket通信传送文件实现代码
2014/08/16 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
2015/05/25 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
jQuery 自定义函数写法分享
2012/03/30 Javascript
JavaScript返回0-1之间随机数的方法
2015/04/06 Javascript
jQuery实现的分子运动小球碰撞效果
2016/01/27 Javascript
js获取上传文件的绝对路径实现方法
2016/08/02 Javascript
jQuery Dialog 取消右上角删除按钮事件
2016/09/07 Javascript
javaScript字符串工具类StringUtils详解
2017/12/08 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
浅谈Webpack下多环境配置的思路
2018/06/27 Javascript
使用node搭建自动发图文微博机器人的方法
2019/03/22 Javascript
vux-scroller实现移动端上拉加载功能过程解析
2019/10/08 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
用python代码做configure文件
2014/07/20 Python
Python中实现字符串类型与字典类型相互转换的方法
2014/08/18 Python
vscode 远程调试python的方法
2017/12/01 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
python pexpect ssh 远程登录服务器的方法
2019/02/14 Python
python实现定时压缩指定文件夹发送邮件
2020/12/22 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
python实现图片横向和纵向拼接
2020/03/05 Python
如何使用pycharm连接Databricks的步骤详解
2020/09/23 Python
css3 旋转按钮 使用CSS3创建一个旋转可变色按钮
2012/12/31 HTML / CSS
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
总经理助理岗位职责
2013/11/08 职场文书
户外用品商店创业计划书
2014/01/29 职场文书
初中作文评语大全
2014/04/23 职场文书
邻里守望志愿服务活动方案
2014/08/15 职场文书
晚会主持人开场白台词
2015/05/28 职场文书
初中英语教学反思范文
2016/02/15 职场文书
电子表的操作介绍说明书
2019/10/28 职场文书
python中数组和列表的简单实例
2022/03/25 Python