webentwicklung-frage-antwort-db.com.de

Wie kann ich programmgesteuert mit Javascript auf einen Link klicken?

Kann ich mit JavaScript auf einen Link auf meiner Seite klicken?

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

Diese Funktion funktioniert mindestens in Firefox und Internet Explorer. Es führt alle an den Link angehängten Ereignishandler aus und lädt die verknüpfte Seite, wenn die Ereignishandler die Standardaktion nicht abbrechen.

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

Wenn Sie nur die aktuelle Seitenadresse ändern möchten, können Sie dies einfach in Javascript tun:

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

Einfach so:

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

oder beim Laden der Seite:

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

Die jQuery-Methode zum Klicken auf einen Link lautet

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

Für mailTo link müssen Sie den folgenden Code schreiben

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

Sie können sie einfach auf eine andere Seite umleiten. Eigentlich scheint es unsinnig zu sein, einen Link im wahrsten Sinne des Wortes anzuklicken und dorthin zu reisen, aber ich kenne die ganze Geschichte nicht.

2
akway

Viele der oben genannten Methoden sind veraltet. Es wird nun empfohlen, den gefundenen Konstruktor zu verwenden hier

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

Dadurch wird das Ankertag angeklickt, es wird jedoch nicht angezeigt, ob Popupblocker aktiv sind, sodass der Benutzer Popups zulassen muss.

2
maus

Können Sie anstelle des Klickens die URL weiterleiten, zu der der Klick mit Javascript führen würde?

Vielleicht könntest du etwas in den Körper von Load einfügen, um dorthin zu gelangen, wo du willst.

1
Jas Panesar

Ich habe es geschafft, dass es so funktioniert. Ich habe den automatischen Klick in 5000 Millisekunden ausgelöst und die Schleife nach 1000 Millisekunden geschlossen. Dann gab es nur noch 1 automatischen Klick.

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