js事件源window.event.srcElement兼容性写法(详解)


Posted in Javascript onNovember 25, 2016

如下所示:

<html>
<body>
<p>一个好处就是 我想让body(或其他元素内)的某些对象响应事件 就不用挨个儿去写
只要在外层上写一个 然后检查event.srcElement.tagName或其他属性是不是你想要的来决定是否响应事件就可以了.不过好像event.srcElement在ff里不起作用 </p>
<p>比如</p>
<p>
<input value="input">
<br>
<span>span</span></p>
<div>div</div>

<p>event对象指当前触发的事件对象,  window.event.srcElement是指触发事件的对象。比如你设定document.onclick  
=  myfunc;这时所有页面点击的事件都交给myfunc处理,在myfunc函数里可以写vSrc  =  window.event.srcElement,
知道用户是点击了什么地方,做相应处理。  
你找个HTML文件,在其中加上这么一段:</p>
<p>
<textarea rows="10" cols="90">
  <script  languange  =  "javascript">  
document.onclick  =  myfunc;  
 
</script> 
</textarea>  
<script  languange  =  "javascript">  
document.onclick  =  myfunc;  
function myfunc()
{
var evt=getEvent();
var element=evt.srcElement || evt.target;
alert(element.tagName)
}
//在 ie中处理事件直接使用window.event对象即可,但在firefox中,是没有 window.event对象的,函数需要使用事件的时候,
//需要在事件发生时把事件作为参数传递给函数,不象在ie中,事件对象是全局的,随处都可以访 问.下面这个getEvent()函数可以兼容firefox和ie,
//只需要在访问事件对象的函数的开始调用getEvent()即可,不用再把事件作为 参数传递.以下代码已经实验通过! 
function getEvent()
{
if(document.all)
{
return window.event;//如果是ie
}
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>
</p>
<p>试试就知道了。 <a href=#>void(0)是一个不做任何事的函数。</a>
</p>
</body>

 </html>

以上这篇js事件源window.event.srcElement兼容性写法(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript 网页黑白效果实现代码(兼容IE/FF等)
Apr 23 Javascript
js绑定事件this指向发生改变的问题解决方法
Apr 23 Javascript
javascript每日必学之条件分支
Feb 17 Javascript
用AngularJS的指令实现tabs切换效果
Aug 31 Javascript
vue router下的html5 history在iis服务器上的设置方法
Oct 18 Javascript
基于vue-element组件实现音乐播放器功能
May 06 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
Jul 30 Javascript
JavaScript实现单图片上传并预览功能
Sep 30 Javascript
Vue使用自定义指令实现拖拽行为实例分析
Jun 06 Javascript
js中延迟加载和预加载的具体使用
Jan 14 Javascript
vite+vue3.0+ts+element-plus快速搭建项目的实现
Jun 24 Vue.js
vue实现滑动解锁功能
Mar 03 Vue.js
使用JS读取XML文件的方法
Nov 25 #Javascript
JS比较两个数值的大小实例
Nov 25 #Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
Nov 25 #Javascript
js移动焦点到最后位置的简单方法
Nov 25 #Javascript
详解JS几种变量交换方式以及性能分析对比
Nov 25 #Javascript
深入浅析Vue组件开发
Nov 25 #Javascript
javascript中href和replace的比较(详解)
Nov 25 #Javascript
You might like
ThinkPHP5.1框架数据库链接和增删改查操作示例
2019/08/03 PHP
PHP7 错误处理机制修改
2021/03/09 PHP
JavaScript更改class和id的方法
2008/10/10 Javascript
js控制input输入字符解析
2013/12/27 Javascript
jQuery动画特效实例教程
2014/08/29 Javascript
JavaScript中的对象序列化介绍
2014/12/30 Javascript
AngularJS基础 ng-switch 指令简单示例
2016/08/03 Javascript
jquery获取easyui日期控件的值实现方法
2016/11/09 Javascript
js 调用百度分享功能
2017/02/27 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
原生JS写Ajax的请求函数功能
2017/12/22 Javascript
jQuery实现checkbox全选功能完整实例
2018/07/12 jQuery
React降级配置及Ant Design配置详解
2018/12/27 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
2分钟实现一个Vue实时直播系统的示例代码
2020/06/05 Javascript
原生js实现自定义滚动条
2021/01/20 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
[52:44]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第一场 6.3
2018/06/04 DOTA
跟老齐学Python之用Python计算
2014/09/12 Python
Python3中多线程编程的队列运作示例
2015/04/16 Python
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
2017/08/15 Python
Java编程迭代地删除文件夹及其下的所有文件实例
2018/02/10 Python
python实现滑雪者小游戏
2020/02/22 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
2020/03/23 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
2020/05/15 Python
python 根据列表批量下载网易云音乐的免费音乐
2020/12/03 Python
HTML5 MiranaVideo播放器 (代码开源)
2010/06/11 HTML / CSS
质量负责人任命书
2014/06/06 职场文书
小学学习雷锋活动总结
2014/07/03 职场文书
领导干部作风建设总结
2014/10/23 职场文书
PYTHON InceptionV3模型的复现详解
2022/05/06 Python