2011-09-26 57 views
2

下面的代碼不應該在IE和Firefox中打開一個新窗口,它不能在Firefox中打開,但它在IE中打開,出了什麼問題。event.returnValue無法在IE6中工作

var EventLib = { 
     "preventDefault" : function(event){ 
      if(event.preventDefault) { 
       event.preventDefault(); 
      }else{ 
       window.event.returnValue = false; 
      }   
     } 
    } 




    window.onload = function(){ 
     var elem = document.getElementById("link"); 
     elem.onclick = function(e){ 
     EventLib.preventDefault(e); 
     } 
    } 

和HTML是

<a id="link" href="http://www.google.com" target="_blank">Click</a> 
+0

難道只有IE6?在IE9中工作得很好。 –

+0

我現在沒有IE9 – nepsdotin

+0

不應該只是'event.returnValue = false',而不是'window.event.returnValue'? – nrabinowitz

回答

1

這可能是因爲在計算表達式event.preventDefaultevent未定義引發錯誤。嘗試使用if (event && event.preventDefault)而不僅僅是if (event.preventDefault)

-1

只要改變功能我已經如下圖所示,它會工作

var EventLib = { 
     "preventDefault" : function(event){ 
      if(!event) 
       event = window.event; 
      if(event.preventDefault) { 
       event.preventDefault(); 
      }else{ 
       window.event.returnValue = false; 
      }   
     } 
    }