Html – Comment empêcher le navigateur d'ouvrir le lien spécifié dans href?

Je lance actuellement un navigateur de fichiers. Si l'utilisateur clique sur un lien vers un fichier, une petite fenêtre s'ouvre et demande des options (comme téléchargement et vue). Je l'ai fait en utilisant l'attribut onclick. Si je clique sur le lien, le javascript est exécuté, mais après cela, l'URL spécifiée dans href s'ouvre. Ce que j'essaie de faire est: si vous cliquez sur le lien javascript, exécutez-vous et vous l'achemine éventuellement. Mais si le lien est correct, l'emplacement du lien de copie devrait toujours être disponible. Je pense à résoudre cela en bloquant le scripts de transfert. Donc, si le lien est correct, aucun javascript n'est exécuté et vous pouvez copier l'emplacement du lien. Mais si vous cliquez sur le lien, javascript est exécuté et le lien n'est pas ouvert. Est-ce possible avec javascript, ou existe-t-il un autre moyen d'atteindre ce comportement?

Afin d'éviter l'exécution de la liaison, une façon est de laisser la méthode "onclick" renvoyer false .

Par exemple:

 <a href="http://..." onclick="return clickfunc()">...</a> 

Si clickfunc() renvoie false , un clic sur le lien ne sera pas directement à "http: // …"

Bien que vous le suivez probablement plus comme

 <a href="http://..." id="somebutton">...</a> <script> document.getElementById('somebutton').onclick = function() { ... else { return false; } }; </script> 

Vous devez empêcher le défaut de votre fonction de clic:

 function stopDefAction(evt) { evt.preventDefault(); } 

Vous pouvez remplacer l'attribut href par le texte "javascript: void (0)", par exemple:

 <a href="http://..." id="somebutton">...</a> <script> document.getElementById('somebutton').href="javascript:void(0)" </script> 

Oui, vous devrez éviter l'action par défaut de l'événement. Vous pouvez le faire en renvoyant false dans votre attribut onclick.