• 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>
  • 相关阅读:
    Git failed with a fatal error. Authentication failed
    HttpClient 获取json,即使返回状态不成功也返回json
    win10恢复Windows Media Player
    .NET Core部署到linux(CentOS)最全解决方案
    EasyNetQ 相关问题和解决方法
    RabbitMQ And EasyNetQ
    打爆你的 CPU
    通过代码实现 OutOfMemory
    如何写一段死锁代码
    docker 容器(container)使用ssh服务登录一段时间无操作后自动断开问题解决
  • 原文地址:https://www.cnblogs.com/shaohz2014/p/3937135.html
Copyright © 2020-2023  润新知