javascript如何处理兼容问题?
天蓬老师
天蓬老师 2017-04-11 09:48:13
[JavaScript讨论组]

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

<p id=x style='width:200px;height:200px;background:red;'>
</p>
<p id=demo></p>
<script>
document.addEventListener('click',x1)
                          
function x1(){document.getElementById('demo').innerHTML='123';}
</script>
<p id=x style='width:200px;height:200px;background:red;'>
</p>
<p id=demo></p>
<script>
document.attachEventListener('mouseover',x1,true)
                          
function x1(){document.getElementById('demo').innerHTML='123';}
</script>
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(3)
怪我咯
if(document.attachEvent) {
    document.attachEvent(...);
} else {
    document.addEventListener(...);
}
黄舟

楼主,如果用原生js,可以像下面这么写,推荐你看下“javascript高级程序设计”这本书,里面讲的很通俗易懂哦

<!DOCTYPE html>
<html lang="en">
<head>

<meta charset="UTF-8">
<title>Document</title>

</head>
<body>

<p id=x style='width:200px;height:200px;background:red;'></p>
<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>

ringa_lee

http://caniuse.com/

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号