2010-04-21 4 views
2

Je pense que le fait de retourner false serait suffisant pour annuler l'action de lien, mais apparemment ce n'est pas le cas. Lorsque je clique sur le lien dans le code ci-dessous, j'obtiens le message 'clic', ce qui est attendu. Mais je finis aussi sur google.com, ce qui est inattendu.Comment annuler l'action de lien?

<!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> 

Comment faire pour que l'URL ne change PAS lorsque vous cliquez sur le lien? Solutions purement JavaScript seulement s'il vous plaît, pas de bibliothèques supplémentaires (comme jQuery). Il doit seulement fonctionner avec FireFox 3+ et Chrome.

Répondre

1

Si vous ne voulez pas l'URL sur le point d'ancrage pour modifier l'emplacement, vous pouvez essayer le

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

Merci pour la réponse suivante très rapide! Je suppose que vous avez des choses sur navigateur. Vous tenez à les signaler? (c'est-à-dire quel navigateur ne transmet pas 'e' à la fonction, etc.) – Tobbe