zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    量化交易指标函数整理(持续更新)
    Python之基础练习代码
    根据缺口的模式选股买股票,python 学习代码
    凯利公式
    测试
    AngularJS开发经验
    Hibernate Tools插件的使用
    weblogic配置oracle数据源
    eclipse配置weblogic服务器
    java算法-数学之美二
  • 原文地址:https://www.cnblogs.com/shaohz2014/p/3937135.html
Copyright © 2011-2022 走看看