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 相关文章推荐
javascript中如何处理引号编码&amp;#034;
Aug 15 Javascript
jquery获取一组checkbox的值(实例代码)
Nov 04 Javascript
js实现正则匹配中文标点符号的方法
Dec 23 Javascript
ES6中如何使用Set和WeakSet
Mar 10 Javascript
Bootstrap基本布局实现方法详解
Nov 25 Javascript
Bootstrap超大屏幕的实现代码
Mar 22 Javascript
JS实现针对给定时间的倒计时功能示例
Apr 11 Javascript
利用three.js画一个3D立体的正方体示例代码
Nov 19 Javascript
webpack之devtool详解
Feb 10 Javascript
微信小程序scroll-view仿拼多多横向滑动滚动条
Apr 21 Javascript
JS+canvas画布实现炫酷的旋转星空效果示例
Feb 13 Javascript
原生JavaScript实现留言板
Jan 10 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常用函数 推荐收藏保存
2010/02/21 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
jQuery布局插件UI Layout简介及使用方法
2013/04/03 Javascript
jquery异步跨域访问代码
2013/06/28 Javascript
Javascript中浮点数相乘的一个解决方法
2014/06/03 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
bootstrap模态框垂直居中效果
2016/12/03 Javascript
js分页之前端代码实现和请求处理
2017/08/04 Javascript
javaScript中的空值和假值
2017/12/18 Javascript
Javascript中prototype与__proto__的关系详解
2018/03/11 Javascript
jQuery实现的电子时钟效果完整示例
2018/04/28 jQuery
Vue2.0学习系列之项目上线的方法步骤(图文)
2018/09/25 Javascript
JavaScript对象的特性与实践应用深入详解
2018/12/30 Javascript
详解JS实现简单的时分秒倒计时代码
2019/04/25 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
vue-cli3跨域配置的简单方法
2019/09/06 Javascript
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
Python 第一步 hello world
2009/09/25 Python
理解Python中函数的参数
2015/04/27 Python
对python字典元素的添加与修改方法详解
2018/07/06 Python
使用Django开发简单接口实现文章增删改查
2019/05/09 Python
Python socket非阻塞模块应用示例
2019/09/12 Python
pytorch+lstm实现的pos示例
2020/01/14 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
Python脚本破解压缩文件口令实例教程(zipfile)
2020/06/14 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
2020/09/16 Python
如何基于python实现年会抽奖工具
2020/10/20 Python
利用Storage Event实现页面间通信的示例代码
2018/07/26 HTML / CSS
德国自行车商店:Tretwerk
2019/06/21 全球购物
介绍一下XMLHttpRequest对象
2012/02/12 面试题
英文自我鉴定
2013/12/10 职场文书
在校学生职业规划范文
2014/01/08 职场文书
校园安全广播稿
2014/02/08 职场文书
简易版租房协议书范本
2014/10/13 职场文书
2015年秋季新学期寄语
2015/03/25 职场文书
爱心捐助活动总结
2015/05/09 职场文书