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

谁能帮我看一下btn5也就是跨浏览器事件处理按钮为什么弹不出来吗

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>四种事件处理程序</title>

</head>


<body>

<input type="button" value="HTML事件处理" id="btn1" onclick="showMess()">

<input type="button" value="DOM0级" id="btn2">

<input type="button" value="DOM2级" id="btn3">

<input type="button" value="IE事件处理" id="btn4">

<input type="button" value="跨浏览器事件处理" id="btn5">

<script type="text/javascript">

//一、HTML事件处理程序

function showMess(){

alert("Hello!");

}


//二、DOM0级事件处理程序

var btn2=document.getElementById("btn2");

btn2.onclick=function(){alert("Hello!")};//或者btn2.onclick=showMess;

//btn2.onclick=null;//删除事件程序


//三、DOM2级事件处理程序

var btn3=document.getElementById("btn3");

btn3.addEventListener("click",showMess,false);//三个值分别是“事件类型”,“触发函数名”,“布尔值”

//btn3.removeEventListener("click",showMess,false);//删除事件程序,三个参数必须与上面相同


//四、IE事件处理程序(因为IE不支持DOM2级)

var btn4=document.getElementById("btn4");

btn4.attachEvent("onclick",showMess);//比DOM2级少了布尔值

//btn4.detachEvent("onclick",showMess);//删除


var btn5=document.getElementById("btn5");

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;

}

}

}

eventUtil.addHandler(btn5,'click',showMess);

</script>

</body>

</html>


提问者:weibo_敏二不二_0 2016-03-25 17:29

个回答

  • qq_流浪猫烂打网要炫_0
    2016-03-25 19:35:14

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>四种事件处理程序</title>

    </head>


    <body>

    <input type="button" value="HTML事件处理" id="btn1" onclick="showMess()">

    <input type="button" value="DOM0级" id="btn2">

    <input type="button" value="DOM2级" id="btn3">

    <input type="button" value="IE事件处理" id="btn4">

    <input type="button" value="跨浏览器事件处理" id="btn5">

    <script type="text/javascript">

    //一、HTML事件处理程序

    function showMess(){

    alert("Hello!");

    }


    //二、DOM0级事件处理程序

    var btn2=document.getElementById("btn2");

    btn2.onclick=function(){alert("Hello!")};//或者btn2.onclick=showMess;

    //btn2.onclick=null;//删除事件程序


    //三、DOM2级事件处理程序

    var btn3=document.getElementById("btn3");

    btn3.addEventListener("click",showMess,false);//三个值分别是“事件类型”,“触发函数名”,“布尔值”

    //btn3.removeEventListener("click",showMess,false);//删除事件程序,三个参数必须与上面相同


    //四、IE事件处理程序(因为IE不支持DOM2级)

    var btn4=document.getElementById("btn4");

    // btn4.attachEvent("onclick",showMess);//比DOM2级少了布尔值

    //btn4.detachEvent("onclick",showMess);//删除


    var btn5=document.getElementById("btn5");

    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;

    }

    }

    }

    eventUtil.addHandler(btn5,'click',showMess);

    </script>

    </body>

    </html>


  • qq_流浪猫烂打网要炫_0
    2016-03-25 19:34:38

    你的浏览器对attachEvent支持吗???

    如果不支持 就把

     btn4.attachEvent("onclick",showMess);//比DOM2级少了布尔值

    这一行注释掉,试一下

    在我这里注释了之后,就可以了,你试试