问答详情
源自:2-4 IE事件处理程序及跨浏览器解决

哪里错了,实在是找不出来了

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf8">
    <title>跨浏览器解决</title>

</head>
<body>
    <div id="box">
        <input type="button" value="按钮1" id="btn1" onclick="showmes()"></input>
        <input type="button" value="按钮2" id="btn2"></input>
        <input type="button" value="按钮3" id="btn3"></input>

    </div>

        <script type="text/javascript">
    //HTML事件处理程序
        function showmes() {
            alert("好好学习");
        };
        //DOM0级事件处理程序
        var btn2=document.getElementById("btn2");
        var btn3=document.getElementById("btn3");    
        btn2.onclick=function(){
            alert("这是通过DOM0级添加的事件");
        }
         //btn2.onclick=null;
         // //DOM2级事件
          
         // //  btn3.addEventListener('click',showmes,false);
         // //  btn3.removeEventListener('click',function(){
         // //      alert("DOM2级移除事件")
         // // },flase);
         // //IE事件处理流
         // btn3.attachEvent('onclick',showmes)
         // btn3.detachEvent('onclick',shoumes)
         var eventUtil={
             //添加句柄
             addHandler:function(element,type,handler){
                 if(element.addEventListener){
                     element.addEventListener(type,handler,false)
                 }else if(element.attachEvent){
                     element.attachEvent('on'+type,handler);
                 }
                 else{
                     element['on'+type]=handler;
                 }
             },
             删除句柄
             removeHandler:function(element,type,handler){
                  if(element.removeEventListener){
                      element.removeEventListener(type,handler,false)
                  }else if(element.detachEvent){
                      element.detachEvent('on'+type,handler)
                 }
                  else{
                      element['on'+type]=null;//element.onclick===element['onclick']
                  }
              }
         }
        eventUtil.addHandler(btn3,'click',showmes)
        </script>

</body>
</html>

提问者:沙滩贝壳 2017-05-10 17:00

个回答

  • 健身学编程
    2017-05-10 21:56:57
    已采纳

    删除句柄哪个前面没有注释,浏览器以为是JS代码,所以报错,

    //删除句柄     这样就好了。

  • 沙滩贝壳
    2017-05-11 08:46:36

    能再问一个问题吗?<meta charset="utf8">。IE浏览器中打开,按钮的上的汉字显示乱码,而且按钮三没反应,而按钮2和按钮1弹出提示框“ni  hao”