2009-03-02 9 views
6

Gibt es eine einfache Möglichkeit, JavaScript so zu simulieren, dass ein Benutzer auf ein Anchor-Tag auf einer Seite klickt? Das bedeutet, dass die Referrer-URL festgelegt werden muss. Durch einfaches Festlegen der Datei document.location.href wird die Referrer-URL nicht festgelegt.Navigieren in href in Anchor-Tags über JavaScript

<script> 
    $(document).ready(function() { 
    $("a").click(); 
}); 
</script> 

<a href="http://example.com">Go here</a> 

Dies funktioniert nicht, da keine Click() - Ereigniseinrichtung für den Link eingerichtet wurde.

Antwort

14

Sie könnten tun:

var href = $('a').attr('href'); 
$('<form>').attr({action: href, method: 'GET'}).appendTo($('body')).submit(); 

Es ist hackish, aber funktioniert in allen Browsern:

window.location = $("a").attr("href"); 

Wenn Sie die Referrer behalten möchten, können Sie dies tun.

+0

Ich denke nicht, dass dies funktioniert, um die Referrer URL zu erhalten. Ich habe die Frage aktualisiert, um dies zu berücksichtigen. –

+0

Mm. Es funktioniert auf Firefox, nur nicht auf IE. Etwas nachgehen. –

+0

Sie können einfach window.location.assign() verwenden, wenn Sie die Referrer-URL beibehalten möchten. Der Code lautet dann window.location.assign ("http: // localhost /"); – fedmich

1

Vielleicht ist so etwas wie das, wonach Sie suchen?

$(document).ready(function() { 
    $("a").each(function(){ 
    if($(this).click()){ 
     document.location.href = $(this).attr("href"); 
    } 
    }); 
}); 
+0

Dies funktioniert nicht, da die Referrer-URL nicht festgelegt wird. Ich habe die Frage aktualisiert –

0

Okay, referer bekommen nicht gesetzt document.location mit (laut meiner anderen Antwort), könnte mit window.navigate (url) arbeiten? Wenn das nicht die folgenden funktionieren könnte, obwohl es recht ist - EHRM - ugly:

$(function() { 
    $("a").each(function(){ 
    if($(this).click()){ 
     $('<form method="get" action="' + $(this).attr("href") + '"></form>').appendTo("body").submit(); 
     return false; 
    } 
    }); 
}); 
1

document.location.href = "#wanted_Location";

0

Es ist ein einfacher Weg, um es zu erreichen,

HTML

<a href="https://getbootstrap.com/" id="fooLinkID">Bootstrap is life </a> 

JavaScript

// Simulating click after 3 seconds 
setTimeout(function(){ 
    document.getElementById('fooLinkID').click(); 
}, 3 * 1000); 

Ebene Javascript Mit einem Klick zu simulieren.

Sie können Arbeitsbeispiel hier auf jsFiddle überprüfen.