2010-04-21 56 views
2

我雖然返回false將足以取消鏈接操作,但顯然它不是。當我點擊下面代碼中的鏈接時,我會得到預期的'點擊'消息。但我最終還是在google.com,這是意想不到的。如何取消鏈接操作?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
    <title>Link test</title> 
    <script> 
     window.addEventListener('load', function() { 
      document.getElementsByTagName('a')[0].addEventListener('click', function() { 
       alert('click'); 
       return false; 
      }, false); 
     }, false); 
    </script> 
</head> 
<body> 
    <a href="http://www.google.com">google</a> 
</body> 
</html> 

如何在點擊鏈接時不改變url?純粹的JavaScript解決方案只請,沒有額外的庫(如jQuery)。它只需要使用FireFox 3+和Chrome。

回答

1

如果你不想上的錨鏈接直接改變位置,你可以嘗試以下

document.getElementsByTagName('a')[0].addEventListener('click', function (e) { 
      alert('click'); 
      e=e¦¦event; 
      e.preventDefault? e.preventDefault() : e.returnValue = false; 
     }, false); 
+0

謝謝你的非常快回答!我猜你已經發生了一些跨瀏覽器的事情。你在乎指出它們嗎? (即什麼瀏覽器不會將'e'傳遞給該功能等) – Tobbe 2010-04-21 20:46:09