7698 Stimmen

Wie kann ich auf eine andere Webseite umleiten?

Wie kann ich den Benutzer mit jQuery oder reinem JavaScript von einer Seite auf eine andere umleiten?

16342voto

Ryan McGeary Punkte 228632

Man kann nicht einfach mit jQuery umleiten

jQuery ist nicht erforderlich, und window.location.replace(...) simuliert am besten eine HTTP-Umleitung.

window.location.replace(...) ist besser als die Verwendung von window.location.href denn replace() behält die ursprüngliche Seite nicht im Sitzungsverlauf, was bedeutet, dass der Benutzer nicht in einem nicht enden wollenden Zurück-Button-Fiasko stecken bleibt.

Wenn Sie simulieren wollen, dass jemand auf einen Link klickt, verwenden Sie location.href

Wenn Sie eine HTTP-Umleitung simulieren wollen, verwenden Sie location.replace

Zum Beispiel:

// similar behavior as an HTTP redirect
window.location.replace("http://stackoverflow.com");

// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";

1835voto

Boris Guéry Punkte 46567

WARNUNG: Diese Antwort wurde lediglich als möglicher Lösungsansatz gegeben; sie ist natürlich no die beste Lösung, da sie jQuery erfordert. Ziehen Sie stattdessen die reine JavaScript-Lösung vor.

$(location).prop('href', 'http://stackoverflow.com')

836voto

Standard-"Vanilla"-JavaScript-Verfahren zur Weiterleitung einer Seite

window.location.href = 'newPage.html';

Oder einfacher ausgedrückt: (da window ist global)

location.href = 'newPage.html';

Wenn Sie hier sind, weil Sie verlieren HTTP_REFERER bei der Weiterleitung, lesen Sie weiter:

(Ansonsten ignorieren Sie diesen letzten Teil)


Der folgende Abschnitt richtet sich an diejenigen, die HTTP_REFERER als eine von vielen Sicherheitsmaßnahmen (obwohl es keine großartige Schutzmaßnahme ist). Wenn Sie Internet Explorer 8 oder niedriger sind, gehen diese Variablen bei jeder Form der JavaScript-Seitenumleitung (location.href, usw.) verloren.

Im Folgenden werden wir eine Alternative für IE8 und niedriger damit wir HTTP_REFERER nicht verlieren. Ansonsten können Sie fast immer einfach window.location.href .

Prüfung gegen HTTP_REFERER (Einfügen von URLs, Sitzungen, usw.) puede helfen zu erkennen, ob eine Anfrage legitim ist. ( Nota: es gibt auch Möglichkeiten, diese Referrer zu umgehen / zu fälschen, wie der Link von droop in den Kommentaren zeigt)


Einfache browserübergreifende Testlösung (Fallback auf window.location.href für Internet Explorer 9+ und alle anderen Browser)

Verwendung: redirect('anotherpage.aspx');

function redirect (url) {
    var ua        = navigator.userAgent.toLowerCase(),
        isIE      = ua.indexOf('msie') !== -1,
        version   = parseInt(ua.substr(4, 2), 10);

    // Internet Explorer 8 and lower
    if (isIE && version < 9) {
        var link = document.createElement('a');
        link.href = url;
        document.body.appendChild(link);
        link.click();
    }

    // All other browsers can use the standard window.location.href (they don't lose HTTP_REFERER like Internet Explorer 8 & lower does)
    else { 
        window.location.href = url; 
    }
}

507voto

Govind Singh Punkte 14702

Es gibt viele Möglichkeiten, dies zu tun.

// window.location
window.location.replace('http://www.example.com')
window.location.assign('http://www.example.com')
window.location.href = 'http://www.example.com'
document.location.href = '/path'

// window.history
window.history.back()
window.history.go(-1)

// window.navigate; ONLY for old versions of Internet Explorer
window.navigate('top.jsp')

// Probably no bueno
self.location = 'http://www.example.com';
top.location = 'http://www.example.com';

// jQuery
$(location).attr('href','http://www.example.com')
$(window).attr('location','http://www.example.com')
$(location).prop('href', 'http://www.example.com')

370voto

Fred Punkte 3661

Das funktioniert bei jedem Browser:

window.location.href = 'your_url';

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X