195 votes

Comment cliquer automatiquement sur un lien avec javascript ?

Bonjour, y a-t-il un moyen de cliquer automatiquement sur un lien sur ma page en utilisant le javascript ?

6 votes

Vous ne pouvez effectuer un "clic" que sur les éléments input type="button".

1 votes

@Ballsacian1 J'ai utilisé .click() sur un <a> et cela a fonctionné.

271voto

arik Points 3342
document.getElementById('yourLinkID').click();

21 votes

En fait, jusqu'à présent, il a fonctionné dans tous les navigateurs que j'ai essayés, notamment IE, Safari, Chrome, Firefox et Opera.

8 votes

Notez que si le lien a target="_blank" le bloqueur de fenêtres pop-up du navigateur sera activé pour la nouvelle fenêtre.

46voto

Matthew Crumley Points 47284

Cette fonction fonctionne au moins dans Firefox, et Internet Explorer. Elle exécute tous les gestionnaires d'événements attachés au lien et charge la page liée si les gestionnaires d'événements n'annulent pas l'action par défaut.

function clickLink(link) {
    var cancelled = false;

    if (document.createEvent) {
        var event = document.createEvent("MouseEvents");
        event.initMouseEvent("click", true, true, window,
            0, 0, 0, 0, 0,
            false, false, false, false,
            0, null);
        cancelled = !link.dispatchEvent(event);
    }
    else if (link.fireEvent) {
        cancelled = !link.fireEvent("onclick");
    }

    if (!cancelled) {
        window.location = link.href;
    }
}

5 votes

Matthew a raison, et stackoverflow.com/questions/809057/ a plus d'informations à ce sujet. La navigation croisée est amusante :)

4 votes

Il ne respecte pas le target ou <base target="frame">

44voto

Fabien Ménager Points 45472

Si vous voulez seulement changer l'adresse de la page actuelle, vous pouvez le faire en faisant simplement ceci en Javascript :

location.href = "http://www.example.com/test";

55 votes

J'ai voté contre car je n'aime pas les réponses qui tournent autour du cas d'utilisation plutôt que de le traiter. "Je présume que c'est votre intention, et je ne suis pas conscient de vos contraintes, donc avec une sphère conceptuelle dans un vide conceptuel : utilisez ceci."

14 votes

J'ai voté pour le haut, parce que je cherchais une solution agréable pour cliquer. mailto: lien dans le script de userjs. J'ai définitivement gagné du temps. J'étais prêt à créer a et faire un "clic programmé" stackoverflow.com/questions/809057/

6 votes

J'ai aussi essayé d'appeler click() méthode proposée ailleurs et ci-dessus et cela n'a pas fonctionné dans IE9, mais en réglant location.href a effectivement envoyé l'email depuis le mailto: lien. Excellente solution !

19voto

Canavar Points 29161

Tout simplement comme ça :

<a id="myLink" onclick="alert('link click');">LINK 1</a>
<a id="myLink2" onclick="document.getElementById('myLink').click()">Click link 1</a>

ou au chargement de la page :

<body onload="document.getElementById('myLink').click()">
...
<a id="myLink" onclick="alert('link click');">LINK 1</a>
...
</body>

2 votes

Oui, mais alors un autre clic doit se produire.

2 votes

Ne pouvez-vous pas le faire sur n'importe quel événement, comme le chargement d'une page ?

2 votes

Merci pour votre aide, mais j'utilise Firefox 3 et cela ne fonctionne pas, dans la console d'erreur, il est écrit Error : document.getElementById("myLink").click is not a function.

1voto

Jas Panesar Points 5949

Au lieu de cliquer, pouvez-vous faire suivre l'URL vers laquelle le clic irait en utilisant Javascript ?

Peut-être que vous pourriez mettre quelque chose dans le corps onLoad pour aller où vous voulez.

0 votes

J'ai répondu aux deux questions parce que les gens ne vont pas naturellement chercher des informations sur les boutons lorsqu'ils ont affaire à un lien "a tag". Ils sont techniquement sans rapport.

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