web-dev-qa-db-fra.com

Comment puis-je cliquer par programme sur un lien avec javascript?

Est-il possible de cliquer sur un lien de ma page en utilisant JavaScript?

159
Jason Kolok
document.getElementById('yourLinkID').click();
218
arik

Cette fonction fonctionne au moins dans Firefox et Internet Explorer. Il 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;
    }
}
45
Matthew Crumley

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

location.href = "http://www.example.com/test";
38
Fabien Ménager

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>
14
Canavar

La manière jQuery de cliquer sur un lien est

$('#LinkID').click();

Pour le lien mailTo, vous devez écrire le code suivant

$('#LinkID')[0].click();
9

Vous pouvez simplement les rediriger vers une autre page. En fait, le faire cliquer littéralement sur un lien et y aller semble dérisoire, mais je ne connais pas toute l'histoire.

2
akway

Plusieurs des méthodes ci-dessus ont été déconseillées. Il est maintenant recommandé d'utiliser le constructeur trouvé ici

function clickAnchorTag() {
    var event = document.createEvent('MouseEvent');
    event = new CustomEvent('click');
    var a = document.getElementById('nameOfID');
    a.dispatchEvent(event);
}

Cela entraînera un clic sur la balise d'ancrage, mais il ne s'affichera pas si les bloqueurs de fenêtres publicitaires sont actifs. Par conséquent, l'utilisateur devra autoriser les fenêtres publicitaires.

2
maus

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

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

1
Jas Panesar

Pour moi, j'ai réussi à le faire fonctionner de cette façon. J'ai déployé le clic automatique en 5 000 millisecondes, puis j'ai fermé la boucle après 1 000 millisecondes. Ensuite, il y avait seulement 1 clic automatique.

<script> var myVar = setInterval(function ({document.getElementById("test").click();}, 500); setInterval(function () {clearInterval(myVar)}, 1000); </script>
1
Naiguel Developer