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 arguments.callee的应用代码
May 07 Javascript
JS加jquery简单实现标签元素的显示或隐藏
Sep 23 Javascript
JavaScript实现点击自动选择TextArea文本的方法
Jul 02 Javascript
基于Jquery实现表单验证
Jul 20 Javascript
如何通过js实现图片预览功能【附实例代码】
Mar 30 Javascript
利用js+css+html实现固定table的列头不动
Dec 08 Javascript
vue.js学习笔记:如何加载本地json文件
Jan 17 Javascript
vue源码学习之Object.defineProperty 对数组监听
May 30 Javascript
JS实现select选中option触发事件操作示例
Jul 13 Javascript
用Vue.js方法创建模板并使用多个模板合成
Jun 28 Javascript
JavaScript console的使用方法实例分析
Apr 28 Javascript
JS实现时间校验的代码
May 25 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
建立动态的WML站点(一)
2006/10/09 PHP
修改PHP的memory_limit限制的方法分享
2012/02/21 PHP
PHP延迟静态绑定示例分享
2014/06/22 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
2015/01/07 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
关于JavaScript中var声明变量作用域的推断
2010/12/16 Javascript
ComboBox 和 DateField 在IE下消失的解决方法
2013/08/30 Javascript
JS获取select-option-text_value的方法
2013/12/26 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
微信小程序选择图片和放大预览图片功能
2017/11/02 Javascript
使用Vue-Router 2实现路由功能实例详解
2017/11/14 Javascript
vue裁切预览组件功能的实现步骤
2018/05/04 Javascript
微信小程序吸底区域适配iPhoneX的实现
2020/04/09 Javascript
[02:42]DOTA2英雄基础教程 杰奇洛
2013/12/23 DOTA
[05:06]TI4西雅图DOTA2前线报道 海涛密探LGD训练
2014/07/09 DOTA
python监控网站运行异常并发送邮件的方法
2015/03/13 Python
python多线程实现TCP服务端
2019/09/03 Python
使用Python进行防病毒免杀解析
2019/12/13 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
2020/02/26 Python
Python接口测试get请求过程详解
2020/02/28 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
2020/03/27 Python
python中数字是否为可变类型
2020/07/08 Python
html5画布旋转效果示例
2014/01/27 HTML / CSS
飞利浦西班牙官方网站:Philips西班牙
2020/02/17 全球购物
日本最大的彩色隐形眼镜销售网站:CharmColor
2020/09/09 全球购物
颇特女士香港官网:NET-A-PORTER香港
2021/03/08 全球购物
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
Python面试题:Python里面如何生成随机数
2015/03/12 面试题
工程承诺书怎么写
2014/05/24 职场文书
班级文化标语
2014/06/23 职场文书
2015元旦联欢晚会结束语
2014/12/14 职场文书
2014年助理政工师工作总结
2014/12/19 职场文书
如何使用 resize 实现图片切换预览功能
2021/08/23 HTML / CSS
Python使用pyecharts控件绘制图表
2022/06/05 Python
mysql查看表结构的三种方法总结
2022/07/07 MySQL