求大家幫我找錯誤,跨瀏覽器事件處理只能實現IE,谷歌上沒反應
<!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>
<div>
<input?type="button"?id="btn1"?value="按鈕1"?onclick="showMessage()"/>
<input?type="button"?id="btn2"?value="按鈕2"?/>
<input?type="button"?id="btn3"?value="按鈕3"?/>
<input?type="button"?id="btn4"?value="按鈕4"?/>
<input?type="button"?id="btn5"?value="按鈕5"?/>
</div>
<script?type="text/javascript">
function?showMessage(){
alert("第一種事件處理程序:HTML事件處理程序");
}
var?btn2=document.getElementById('btn2');
btn2.onclick=function(){
alert("第二種事件處理程序:DOM0級事件處理程序");
}
//btn2.onclick=null;//刪除事件
function?showMs(){
alert("第三種事件處理程序:DOM2級事件處理程序");
}
var?btn3=document.getElementById('btn3');
btn3.addEventListener('click',showMs,false);
btn3.addEventListener('click',function(){
alert(this.value);
},false);
//btn3.removeEventListener('click',showMs,false);//刪除事件
var?btn4=document.getElementById('btn4');
function?showMsg(){
alert("第四種事件處理程序:IE事件處理程序");
}//對谷歌瀏覽器無效
btn4.attachEvent('onclick',showMsg);
btn4.detachEvent('onclick',showMsg);
//跨瀏覽器事件處理程序,用封裝的方法
//按鈕5的JavaScript代碼如下:
var?btn5=document.getElementById('btn5');
function?show(){
alert("第五種事件處理程序:跨瀏覽器事件處理程序");
}
var?EventUtill={
//添加句柄
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;
}
}
}
EventUtill.addHandler(btn5,'click',show);
</script>
</body>
</html>這是我的全部代碼,出問題的代碼在最后的部分,按鈕5的事件實現不了。但是看不出錯在哪里,IE上點擊按鈕5可以,chrome上不行,求查錯!
2016-11-04
因為chrome中
這兩句報錯了,所以JS不會往下執行,就沒有辦法給btn5添加事件
2016-11-04
2016-11-04
上面講有理由應該是對的。。attachEvent這個方法在谷歌里面不支持,可能就報錯了,并不能繼續往下執行,所以就看不到下面正確的語句效果了
2016-11-04
function?showMsg(){
????alert("第四種事件處理程序:IE事件處理程序");
}//對谷歌瀏覽器無效
btn4.attachEvent('onclick',showMsg);
btn4.detachEvent('onclick',showMsg);
//跨瀏覽器事件處理程序,用封裝的方法
去掉這些就好了,估計是有處理不了
?
2016-11-04
<input type="button" value="btn5" id="btn5"/>
可以啊,chrome測過了,沒問題啊,就用你的代碼,只取最后一部分,注釋掉沒有用的代碼,你把上面代碼注釋掉試一下。