IE阻止默認(rèn)行為的代碼是不是對IE10無效?
<!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>無標(biāo)題文檔</title> </head> <body> <div?id="box"> <input?type="button"?id="btn1"?value="按鈕"??/> <a?id="gop"?href="事件處理程序(BUG).html">跳轉(zhuǎn)頁面</a> </div> <script?type="text/javascript"> //事件對象 var?btn1=document.getElementById('btn1'); var?box=document.getElementById('box'); var?gop=document.getElementById('gop'); btn1.addEventListener('click',showMes,false); function?showMes(ev){ alert(ev.type); // var?ele=ev.target; var?ele=ev.srcElement;//IE訪問事件標(biāo)簽 alert(ele); alert(ev.target.nodeName); // ev.stopPropagation();//這行代碼阻止了事件冒泡 ev.cancelBubble=false;//IE瀏覽器阻止事件冒泡 } function?showBox(){ alert("這個事件證實了事件冒泡"); } //阻止事件冒泡 function?stopGoto(ev){ ev.stopPropagation(); // ev.preventDefault();//阻止了默認(rèn)行為,阻止標(biāo)簽a的跳轉(zhuǎn) ev.returnValue=false;//IE阻止默認(rèn)行為,對IE10貌似無效 } box.addEventListener('click',showBox,false); gop.addEventListener('click',stopGoto,false); </script> </body> </html>
請看stopGoto這個函數(shù),我在函數(shù)里寫了ev.returnValue=false;這句話,想要阻止IE瀏覽器上a標(biāo)簽的默認(rèn)行為,但是在IE10中運(yùn)行的時候發(fā)現(xiàn),沒有成功阻止。chrome上倒是成功阻止了。
2017-06-23
ev.returnValue=false ?這個改成 window.event.returnValue=false
2016-11-04
可以阻止的,是因為你上面的代碼在IE里面有報錯,你代碼里面沒有用封裝的方式都添加事件,在IE里面不能正確執(zhí)行,所以,阻止不了,
請使用封裝好的工具對象:
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.attachEvent){
? ? ? ? ? ?element.detachEvent('on'+type,handler);
? ? ? ?}else
? ? ? ?{
? ? ? ? ? ?element['on'+type]=null;
? ? ? ?}
? ?},
? ?getEvent:function(event){
? ? ? ?return event?event:window.event;
? ?},
? ?getType:function(event){
? ? ? ?return event.type;
? ?},
? ?getTarget:function(event){
? ? ? ?return event.target||event.srcElement;
? ?},
? ?preventDefault:function(event)
? ?{
? ? ? ?if(event.preventDefault)
? ? ? ?{
? ? ? ? ? ?event.preventDefault();
? ? ? ?}else
? ? ? ?{
? ? ? ? ? ?event.returnValue=false;
? ? ? ?}
? ?},
? ?stopPropagation:function(event)
? ?{
? ? ? ?if(event.stopPropagation)
? ? ? ?{
? ? ? ? ? ?event.stopPropagation();
? ? ? ?}else
? ? ? ?{
? ? ? ? ? ?event.cancelBubble=true;
? ? ? ?}
? ?}
}