101 votes

Comment appeler une fonction JavaScript au lieu d'un href en HTML

J'ai quelques maquettes en HTML

<a href="javascript:ShowOld(2367,146986,2)"><img title="next page" alt="next page" src="/themes/me/img/arrn.png"></a>

J'ai obtenu la réponse du serveur lorsque j'ai envoyé la requête.

Avec cette maquette j'ai obtenu comme réponse une requête AJAX qui envoie mon code au serveur.

Tout va bien, mais lorsque je clique sur le lien, le navigateur veut ouvrir la fonction en tant que lien, c'est-à-dire qu'après avoir cliqué, la barre d'adresse s'affiche comme suit

javascript:ShowOld(2367,146986,2)

signifie le truc du navigateur qui est url si je veux faire ça dans firebug ça marche. Maintenant, je veux faire en sorte que lorsque quelqu'un clique sur le lien, le navigateur essaie d'appeler la fonction déjà chargée dans le DOM au lieu d'essayer de les ouvrir dans le navigateur.

224voto

Dutchie432 Points 16305

Cette syntaxe devrait fonctionner correctement, mais vous pouvez essayer cette alternative.

<a href="javascript:void(0);" onclick="ShowOld(2367,146986,2);">

o

<a href="javascript:ShowOld(2367, 146986, 2);">

RÉPONSE ACTUALISÉE POUR LES VALEURS DE CHAÎNE

Si vous transmettez des chaînes de caractères, utilisez des guillemets simples pour les paramètres de votre fonction.

<a href="javascript:ShowOld('foo', 146986, 'bar');">

12voto

Felix Kling Points 247451

Si vous n'avez qu'un seul "gestionnaire d'événement de clic", utilisez un bouton <button> à la place. Un lien a une signification sémantique spécifique.

Par exemple :

<button onclick="ShowOld(2367,146986,2)">
    <img title="next page" alt="next page" src="/themes/me/img/arrn.png">
</button>

7voto

soju Points 6479

Essayez de rendre votre javascript discret :

  • vous devez utiliser un vrai lien dans l'attribut href
  • et ajoutez un écouteur sur l'événement de clic pour gérer l'ajax.

5voto

tolsen64 Points 39

J'utilise un peu de CSS sur un span pour le faire ressembler à un lien comme ceci :

CSS :

.link {
    color:blue;
    text-decoration:underline;
    cursor:pointer;
}

HTML:

<span class="link" onclick="javascript:showWindow('url');">Click Me</span>

JAVASCRIPT :

function showWindow(url) {
    window.open(url, "_blank", "directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes");
}

3voto

nico Points 45

<a href="#" onclick="javascript:ShowOld(2367,146986,2)">

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X