[Javascript] Wie kann ich auf eine andere Webseite umleiten?


Answers

WARNUNG: Diese Antwort wurde lediglich als mögliche Lösung bereitgestellt. Es ist offensichtlich nicht die beste Lösung, da es jQuery erfordert. Stattdessen bevorzugen Sie die reine JavaScript-Lösung.

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

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




Es gibt drei Hauptwege, dies zu tun,

window.location.href='blaah.com';
window.location.assign('blaah.com');

und...

window.location.replace('blaah.com');

Der letzte ist der beste für eine herkömmliche Weiterleitung, da er die Seite, auf die Sie gegangen sind, nicht speichert, bevor er in Ihren Suchverlauf umgeleitet wird. Wenn Sie jedoch nur eine Registerkarte mit JavaScript öffnen möchten, können Sie eine der oben genannten Optionen verwenden. 1

BEARBEITEN: Das window ist optional.




Schreib zuerst richtig. Sie möchten innerhalb einer Anwendung nach einem anderen Link aus Ihrer Anwendung für einen anderen Link navigieren. Hier ist der Code:

window.location.href = "http://www.google.com";

Und wenn Sie innerhalb Ihrer Anwendung durch die Seiten navigieren möchten, habe ich auch Code, wenn Sie möchten.




Es würde helfen, wenn Sie etwas beschreibender wären in dem, was Sie zu tun versuchen. Wenn Sie versuchen, seitenweise Daten zu generieren, gibt es einige Möglichkeiten, wie Sie dies tun. Sie können separate Links für jede Seite generieren, auf die Sie direkt zugreifen können.

<a href='/path-to-page?page=1' class='pager-link'>1</a>
<a href='/path-to-page?page=2' class='pager-link'>2</a>
<span class='pager-link current-page'>3</a>
...

Beachten Sie, dass die aktuelle Seite in diesem Beispiel im Code und mit CSS anders behandelt wird.

Wenn Sie möchten, dass die ausgelagerten Daten über AJAX geändert werden, kommt jQuery hier ins Spiel. Sie würden jedem Anker-Tag, der einer anderen Seite entspricht, einen Click-Handler hinzufügen. Dieser Click-Handler würde einen bestimmten jQuery-Code aufrufen, der die nächste Seite über AJAX holt und die Tabelle mit den neuen Daten aktualisiert. Im folgenden Beispiel wird davon ausgegangen, dass Sie über einen Webdienst verfügen, der die neuen Seitendaten zurückgibt.

$(document).ready( function() {
    $('a.pager-link').click( function() {
        var page = $(this).attr('href').split(/\?/)[1];
        $.ajax({
            type: 'POST',
            url: '/path-to-service',
            data: page,
            success: function(content) {
               $('#myTable').html(content);  // replace
            }
        });
        return false; // to stop link
    });
});



Um nur auf eine Seite umzuleiten:

  window.location.href = "/destination.html";

Oder wenn Sie eine Verzögerung benötigen:

setTimeout(function () {
  window.location.href = "/destination.html";
}, 2000);   // Time in milliseconds

Mit jQuery können Sie Elemente auf einer Webseite mit Leichtigkeit auswählen. Sie können alles auf einer Seite finden und jQuery verwenden, um Spezialeffekte hinzuzufügen, auf Benutzeraktionen zu reagieren oder Inhalte innerhalb oder außerhalb des ausgewählten Elements ein- und auszublenden. All diese Aufgaben beginnen damit, ein Element auszuwählen .

function redirect () {
    $('selection').animate({
        marginLeft: 100px; //Put some CSS animation here
    }, 500, function () {
      // OK, finished jQuery staff, let's go redirect
      window.location.href = "/destination.html";
})

Stellen Sie sich vor jemand schrieb ein Skript / Plugin, das 10000 Zeilen Code ist ?! Nun, mit jQuery können Sie sich mit nur ein oder zwei Zeilen mit diesem Code verbinden.







Grundsätzlich ist jQuery eine JavaScript- Bibliothek und für einige Dinge wie Redirect können Sie reines JavaScript verwenden. In diesem Fall haben Sie 3 Optionen, die mit Vanilla JavaScript arbeiten:

1) Wenn Sie den Standort ersetzen , ersetzt dies den aktuellen Verlauf der Seite, dh, es ist nicht möglich, mit der Zurück- Taste zur ursprünglichen Seite zurückzukehren.

window.location.replace("http://.com");

2) Mithilfe der Standortzuweisung behält diese den Verlauf für Sie und mit der Zurück-Taste können Sie zur ursprünglichen Seite zurückkehren:

window.location.assign("http://.com");

3) Ich empfehle die Verwendung einer dieser vorherigen Möglichkeiten, aber dies könnte die dritte Option sein, die reines JavaScript verwendet:

window.location.href="http://.com";

Sie können auch eine Funktion in jQuery schreiben, um sie zu behandeln, aber nicht empfohlen, da sie nur eine Zeile reine JavaScript-Funktion ist. Sie können auch alle oben genannten Funktionen ohne Fenster verwenden, wenn Sie sich bereits im Fensterbereich befinden, z. B. window.location.replace("http://.com"); könnte location.replace("http://.com");

Auch ich zeige sie alle auf dem Bild unten:




jQuery wird nicht benötigt. Du kannst das:

window.open("URL","_self","","")

So einfach ist es!

Der beste Weg, um eine HTTP-Anfrage zu initiieren, ist mit document.loacation.href.replace('URL') .




var url = 'asdf.html';
window.location.href = url;



Wenn jemand jedoch zurück zur Startseite umleiten möchte, kann er das folgende Snippet verwenden.

window.location = window.location.host

Es wäre hilfreich, wenn Sie drei verschiedene Umgebungen wie Entwicklung, Bereitstellung und Produktion haben.

Sie können dieses Fenster oder window.location-Objekt durchsuchen, indem Sie diese Wörter einfach in die Chrome-Konsole oder die Firebug -Konsole einfügen.




Benutzen:

// 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')



ECMAScript 6 + jQuery, 85 Byte

$({jQueryCode:(url)=>location.replace(url)}).attr("jQueryCode")("http://example.com")

Bitte töte mich nicht, das ist ein Witz. Es ist ein Witz. Das ist ein Witz.

Dies hat "eine Antwort auf die Frage gegeben", in dem Sinne, dass es nach einer Lösung "mit jQuery" gefragt hat, was in diesem Fall bedeutet, es irgendwie in die Gleichung zu zwingen.

Ferrybig braucht anscheinend den Witz erklärt (immer noch scherzend, ich bin mir sicher, dass es auf dem Bewertungsformular nur begrenzte Möglichkeiten gibt), also ohne weiteres:

Andere Antworten verwenden attr() für die location oder die window unnötigerweise.

Diese Antwort missbraucht es auch, aber auf eine lächerlichere Art und Weise. Anstatt es zum attr() des Speicherorts zu verwenden, wird mithilfe von attr() eine Funktion abgerufen, die den Speicherort festlegt.

Die Funktion heißt jQueryCode , obwohl es nichts jQuery gibt, und das Aufrufen einer Funktion somethingCode ist einfach schrecklich, besonders wenn das etwas nicht einmal eine Sprache ist.

Die "85 Bytes" sind eine Referenz zu Code Golf. Golfen ist natürlich nicht etwas, das man außerhalb des Code-Golf spielen sollte, und außerdem ist diese Antwort eindeutig nicht wirklich Golf.

Im Grunde, zucken.




Ich musste diese Lächerlichkeit nur mit einer weiteren neueren jQuery-Methode auf den neuesten Stand bringen:

var url = 'http://www.fiftywaystoleaveyourlocation.com';
$(location).prop('href', url);



Die Frage ist also, wie man eine Redirect-Seite erstellt und nicht auf eine Website umleitet.

Sie müssen dazu nur JavaScript verwenden. Hier ist ein kleiner Code, der eine dynamische Redirect-Seite erstellt.

<script>
    var url = window.location.search.split('url=')[1]; // Get the URL after ?url=
    if( url ) window.location.replace(url);
</script>

Also sagen Sie, dass Sie dieses Snippet in eine redirect/index.html Datei auf Ihrer Website redirect/index.html die Sie so verwenden können.

http://www.mywebsite.com/redirect?url=http://.com

Und wenn Sie zu diesem Link gehen, wird er Sie automatisch zu .com weiterleiten .

Link zur Dokumentation

Und so erstellen Sie eine einfache Redirect-Seite mit JavaScript

Bearbeiten:

Es gibt auch eine Sache zu beachten. Ich habe window.location.replace in meinen Code window.location.replace , weil ich denke, dass es für eine Weiterleitungsseite geeignet ist, aber Sie müssen wissen, dass wenn Sie window.location.replace und Sie weitergeleitet werden, wenn Sie die Zurück-Schaltfläche in Ihrem Browser drücken zurück zur Redirect-Seite, und es wird auf die vorherige Seite zurückgehen, sieh dir diese kleine Demo-Sache an.

Beispiel:

Der Prozess: zu Hause speichern => Seite umleiten zu google => google

Bei google: google => Zurück-Button im Browser => Zuhause speichern

Also, wenn das Ihren Bedürfnissen entspricht, dann sollte alles in Ordnung sein. Wenn Sie die Weiterleitungsseite in den Browserverlauf aufnehmen möchten, ersetzen Sie dies

if( url ) window.location.replace(url);

mit

if( url ) window.location.href = url;



Dies funktioniert mit jQuery:

$(window).attr("location", "http://google.fr");