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

如下所示:

<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兼容性写法(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 常用原生JS兼容性写法汇总

    就来总结一下简单的东西 备注:一下的方法都是包裹在一个EventUtil对象里面的,直接采用对象字面量定义方法了... ①添加事件方法 addHandler:function(element,type,handler){ if(element.addEventListener){//检测是否为DOM2级方法 element.addEventListener(type, handler, false); }else if (element.attachEvent){//检测是否为IE级方法 ele

  • IE与Firefox下javascript getyear年份的兼容性写法

    IE与Firefox下javascript getyear年份不同浏览器 JavaScript 的getyear年份函数兼容性问题 先举个例子 用 Firefox 上一些网站会看到这样的提示 现在时间是 106年8月8日 而用 ie 浏览器的话就显示正常的 2006年8月8日 原因就是 javascript 的兼容性问题 var today = new date(); var year = today.getYear(); 在 Firefox 里面 getYear 返回的是 "当前年份-1900

  • Javascript selection的兼容性写法介绍

    复制代码 代码如下: function getSelectedText() { //this function code is borrowed from: http://www.codetoad.com/javascript_get_selected_text.asp var txt = ""; if (window.getSelection) { txt = window.getSelection(); } else if (window.document.getSelection

  • 详解js几个绕不开的事件兼容写法

    本文介绍了详解js几个绕不开的事件兼容写法,分享给大家,具体如下: 1.键盘事件 keyCode 兼容性写法 var inp = document.getElementById('inp') var result = document.getElementById('result') function getKeyCode(e) { e = e ? e : (window.event ? window.event : "") return e.keyCode ? e.keyCode :

  • JS onkeypress兼容性写法详解

    要求实现输入密码后按回车,触发后台事件.看似十分简单的需求,可是却碰到不少难题啊. HTML内容中主要有一个密码输入文本框,还有一个按钮,用来触发后台事件. 1. TextBox文本框获得焦点后直接回车,页面会刷新.    经过代码仔细研究,原来是当页面中只有一个文本框控件时,当按回车健页面将刷新.    处理方法:在页面中加入一个隐藏的TextBox控件.    具体原理不明! 2. 用Jquery实现方法: $(document).ready(function(){ $("#tbPasswo

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

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

  • JS中的THIS和WINDOW.EVENT.SRCELEMENT详解

    我们先看一个简单的例子: 复制代码 代码如下: <input type="text" onblur="alert(this.value)"/>完全没有问题. 那么什么情况下不可以用? fuction method() { alert(this.value); } <input type="text" onblur="method()"/> 这个就不可以,因为method()是被响应函数调用的函数. 那么

  • window.event.srcElement 得到事件源对象

    一个好处就是 我想让body(或其他元素内)的某些对象响应事件 就不用挨个儿去写 只要在外层上写一个 然后检查event.srcElement.tagName或其他属性是不是你想要的来决定是否响应事件就可以了.不过好像event.srcElement在ff里不起作用 比如 span div event对象指当前触发的事件对象, window.event.srcElement是指触发事件的对象.比如你设定document.onclick = myfunc;这时所有页面点击的事件都交给myfunc处

  • JS图片懒加载库VueLazyLoad详解

    目录 背景 说明 实现原理 1. placeholder 的实现很细致和灵活 2. 添加图片缓存 3. 事件监听使用节流 4. 监听事件不止滚动事件 5. 事件列队的方式来处理懒加载 6. 支持 data-srcset 7. 自定义控制可视区的判定范围 待完善 1. 没有解决布局抖动 2. 跳过已经加载图片的判断方式 3. 局部懒加载 4. 性能不是很好 5. observer 模式配置简单 6. SEO 不友好 总结 背景 上篇<图片懒加载原理方案详解>中详细解析了图片懒加载的原理和方案.主

  • 原生js实现拖拽功能基本思路详解

    如果要设置物体拖拽,那么必须使用三个事件,并且这三个事件的使用顺序不能颠倒. 1.onmousedown:鼠标按下事件 2.onmousemove:鼠标移动事件 3.onmouseup:鼠标抬起事件 拖拽的基本原理就是根据鼠标的移动来移动被拖拽的元素.鼠标的移动也就是x.y坐标的变化;元素的移动就是style.position的 top和left的改变.当然,并不是任何时候移动鼠标都要造成元素的移动,而应该判断鼠标左键的状态是否为按下状态,是否是在可拖拽的元素上按下的. 基本思路如下: 拖拽状态

  • 前端JS图片懒加载原理方案详解

    目录 背景 原理 方案 方案一:img的loading属性设为“lazy” 使用方法 优点 兼容性 缺点 方案二:通过offsetTop来计算是否在可视区域内 优化 优点 缺点 方案三:通过getBoundingClientRect来计算是否在可视区域内 方案四:使用IntersectionObserver来判断是否在可视区域内 兼容性 优点 缺点 问题 布局抖动 响应式图片 SEO不友好 插件 背景 懒加载经常出现在前端面试中,是前端性能优化的常用技巧.懒加载也叫延迟加载,把非关键资源先不加载

  • NodeJS自定义模块写法(详解)

    如下所示: //1.创建测试模块js文件(我这里命名为test.js) //2.添加测试方法 function test(){ console.log('Test Success!'); } //3.公开该方法到node模块 //exports.test(这个是public的方法名,外部调用的时候,使用这个方法名) exports.test = test; //4.测试(在另一个js文件中引入这个模块,并调用对应测试函数,两个js文件在同一目录下) const testModule = requ

  • JS监控关闭浏览器操作的实例详解

    JS监控关闭浏览器操作的实例详解 需求如下: 用户关闭浏览器通知后台. 方案如下: 1.采用js监控关闭浏览器操作. 2.用户关闭浏览器的时候发ajax请求到后台,执行相应的业务操作 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> &l

  • 对Vue.js之事件的绑定(v-on: 或者 @ )详解

    1.Vue.js事件绑定的一般格式 v-on:click='function' v-on:click/mouseout/mouseover/ @click 2.Vue.js事件绑定的实现 2.1 JavaScript代码 <script type="text/javascript" src="../js/vue-1.0.21.js"></script> <script type="text/javascript"&g

随机推荐