开发者社区> 问答> 正文

javascript如何处理兼容问题?

IE9之前不兼容addEventListener(),但是可以使用attachEvent。
我该如何在一段代码中同时出现他们,就像css中-webkit-、-o-那样,不相关的浏览器直接忽略掉?
是不是要判断一下?如何判断呢?还有别的办法吗?

<div id=x style='width:200px;height:200px;background:red;'>
</div>
<p id=demo></p>
<script>
document.addEventListener('click',x1)
                          
function x1(){document.getElementById('demo').innerHTML='123';}
</script>
全选复制放进笔记<div id=x style='width:200px;height:200px;background:red;'>
</div>
<p id=demo></p>
<script>
document.attachEventListener('mouseover',x1,true)
                          
function x1(){document.getElementById('demo').innerHTML='123';}
</script>

展开
收起
a123456678 2016-03-11 17:56:45 1980 0
1 条回答
写回答
取消 提交回答
  • <!DOCTYPE html>
    <html lang="en">
    <head>
    
    <meta charset="UTF-8">
    <title>Document</title>
    </head>
    <body>
    
    <div id=x style='width:200px;height:200px;background:red;'></div>
    <p id="demo"></p>
    
    <script>
    
    
    var oX = document.getElementById('x');
    var oDemo = document.getElementById('demo');
    var eventUil = {
      addHandler:function(obj,type,fn){
        if(obj.addEventListener){
          obj.addEventListener(type,fn,false);
        }else if(obj.attachEvent){
          obj.attachEvent("on"+type,fn);
        }else{
          obj["on"+type] = fn;
        }
      },
      removeHandler:function(obj,type,fn){
        if(obj.removeEventListener){
          obj.removeEventListener(type,fn,false);
        }else if(obj.deattachEvent){
          obj.detachEvent("on"+type,fn);
        }else{
          obj["on"+type] = null;
        }
      }
    }
    
    function x1()
    {
        document.getElementById('demo').innerHTML='123';
    }
    
    eventUil.addHandler(oX,'click',x1);
    </script>
    
    </body>
    </html>
    2019-07-17 18:59:47
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
现代Javascript高级教程 立即下载
JavaScript 语言在引擎级别的执行过程 立即下载
Javascript中的对象 立即下载