javascript - weiterleitung - url weiterleiten




Wie kann ich auf eine andere Webseite umleiten? (20)

Wie kann ich den Benutzer mit jQuery oder reinem JavaScript von einer Seite zu einer anderen umleiten?


Standard "Vanille" JavaScript Weg, um eine Seite umzuleiten:

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

Wenn Sie hier sind, weil Sie HTTP_REFERER beim Umleiten verlieren , lesen Sie weiter:

Der folgende Abschnitt richtet sich an HTTP_REFERER die HTTP_REFERER als eine von vielen sicheren Maßnahmen verwenden (obwohl dies keine besonders gute Schutzmaßnahme ist). Wenn Sie Internet Explorer 8 oder niedriger verwenden, gehen diese Variablen verloren, wenn Sie eine beliebige Form der JavaScript-Seitenumleitung (location.href usw.) verwenden.

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

Das Testen mit HTTP_REFERER (Einfügen von HTTP_REFERER , Sitzungen usw.) kann hilfreich sein, um festzustellen, ob eine Anfrage legitim ist. ( Hinweis: Es gibt auch Möglichkeiten, diese Verweise zu umgehen / zu fälschen, wie der Link von droop in den Kommentaren angibt.)

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; 
    }
}

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

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

Man leitet nicht einfach mit jQuery um

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

window.location.replace(...) ist besser als window.location.href , da replace() die ursprüngliche Seite im Sitzungsverlauf nicht window.location.href , was bedeutet, dass der Benutzer nicht in einem window.location.href stecken bleibt. Knopf Fiasko.

Wenn Sie jemanden simulieren möchten, der auf einen Link klickt, verwenden Sie location.href

Wenn Sie eine HTTP-Umleitung simulieren möchten, verwenden Sie location.replace

Zum Beispiel:

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

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

***** DIE URSPRÜNGLICHE FRAGE WAR: "WIE MAN MIT JQUERY WEITERLEITET", VON ANTWORT AN IMPLEMENTS JQUERY >> KOSTENLOSER NUTZUNGSFALL *****

So leiten Sie mit JavaScript einfach zu einer Seite weiter:

  window.location.href = "/contact/";

Oder wenn Sie eine Verzögerung benötigen:

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

Mit jQuery können Sie ganz einfach Elemente von einer Webseite auswählen. Sie können auf einer Seite alles finden, was Sie möchten, und dann mit jQuery Spezialeffekte hinzufügen, auf Benutzeraktionen reagieren oder Inhalte innerhalb oder außerhalb des ausgewählten Elements ein- und ausblenden. Alle diese Aufgaben beginnen mit dem Wissen, wie ein Element oder ein Ereignis ausgewählt wird .

     $('a,img').on('click',function(e){
         e.preventDefault();
         $(this).animate({
             opacity: 0 //Put some CSS animation here
         }, 500);
         setTimeout(function(){
           // OK, finished jQuery staff, let's go redirect
           window.location.href = "/contact/";
         },500);
     });

Stellen Sie sich vor, jemand hat ein Skript / Plugin geschrieben, das 10000 Codezeilen enthält ?! Nun, mit jQuery können Sie mit nur ein oder zwei Zeilen eine Verbindung zu diesem Code herstellen.


Das funktioniert für jeden Browser:

window.location.href = 'your_url';

Die Frage ist also, wie man eine Weiterleitungsseite erstellt und nicht wie man zu einer Website weiterleitet.

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

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

Nehmen wir also an, Sie fügen dieses Snippet einfach in eine redirect/index.html Datei auf Ihrer Website ein. Sie können es wie folgt verwenden.

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

Und wenn Sie zu diesem Link gehen, werden Sie automatisch zu .com weitergeleitet .

Link zur Dokumentation

Und so erstellen Sie eine einfache Umleitungsseite 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 Umleitungsseite geeignet ist. Sie müssen jedoch wissen, dass Sie bei der Verwendung von window.location.replace umgeleitet werden, wenn Sie die Zurück-Taste in Ihrem Browser drücken Gehen Sie zurück zur Weiterleitungsseite, und es wird zur vorherigen Seite zurückgegangen. Schauen Sie sich diese kleine Demo an.

Beispiel:

Der Vorgang: Startseite speichern => Seite zu Google umleiten => Google

Bei google: google => back button im browser => store home

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

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

mit

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

Es wäre hilfreich, wenn Sie etwas genauer beschreiben würden, was Sie tun möchten. Wenn Sie versuchen, ausgelagerte Daten zu generieren, gibt es einige Möglichkeiten, wie Sie dies tun. Sie können für jede Seite, zu der Sie direkt gelangen möchten, separate Links erstellen.

<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 im Beispiel im Code und mit CSS unterschiedlich behandelt wird.

Wenn die ausgelagerten Daten über AJAX geändert werden sollen, kommt hier jQuery ins Spiel. Fügen Sie jedem der Ankertags, die einer anderen Seite entsprechen, einen Klick-Handler hinzu. Dieser Click-Handler würde einen jQuery-Code aufrufen, der die nächste Seite über AJAX abruft 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
    });
});

Fügen Sie Ihrer Klickfunktion einfach Folgendes hinzu:

window.location.href = "The URL where you want to redirect";
$('#id').click(function(){
    window.location.href = "http://www.google.com";
});

Hier ist eine zeitverzögerte Umleitung. Sie können die Verzögerungszeit nach Belieben einstellen:

<!doctype html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Your Document Title</title>
    <script type="text/javascript">
        function delayer(delay) {
            onLoad = setTimeout('window.location.href = "http://www.google.com/"', delay);
        }
    </script>
</head>

<body>
    <script>
        delayer(8000)
    </script>
    <div>You will be redirected in 8 seconds!</div>
</body>

</html>

Ich denke auch, dass location.replace(URL) der beste Weg ist, aber wenn Sie die Suchmaschinen über Ihre Weiterleitung informieren möchten (sie analysieren keinen JavaScript-Code, um die Weiterleitung zu sehen), sollten Sie das Meta rel="canonical" hinzufügen Tag auf Ihrer Website.

Das Hinzufügen eines Noscript-Abschnitts mit einem HTML-Refresh-Meta-Tag ist ebenfalls eine gute Lösung. Ich empfehle Ihnen, dieses JavaScript-Umleitungs-Tool zu verwenden, um Umleitungen zu erstellen. Es hat auch Internet Explorer-Unterstützung, um den HTTP-Verweis zu übergeben.

Beispielcode sieht ohne Verzögerung so aus:

<!-- Place this snippet right after opening the head tag to make it work properly -->

<!-- This code is licensed under GNU GPL v3 -->
<!-- You are allowed to freely copy, distribute and use this code, but removing author credit is strictly prohibited -->
<!-- Generated by http://insider.zone/tools/client-side-url-redirect-generator/ -->

<!-- REDIRECTING STARTS -->
<link rel="canonical" href="https://yourdomain.com/"/>
<noscript>
    <meta http-equiv="refresh" content="0;URL=https://yourdomain.com/">
</noscript>
<!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]-->
<script type="text/javascript">
    var url = "https://yourdomain.com/";
    if(typeof IE_fix != "undefined") // IE8 and lower fix to pass the http referer
    {
        document.write("redirecting..."); // Don't remove this line or appendChild() will fail because it is called before document.onload to make the redirect as fast as possible. Nobody will see this text, it is only a tech fix.
        var referLink = document.createElement("a");
        referLink.href = url;
        document.body.appendChild(referLink);
        referLink.click();
    }
    else { window.location.replace(url); } // All other browsers
</script>
<!-- Credit goes to http://insider.zone/ -->
<!-- REDIRECTING ENDS -->

JavaScript bietet viele Methoden zum Abrufen und Ändern der aktuellen URL, die in der Adressleiste des Browsers angezeigt wird. Alle diese Methoden verwenden das Location-Objekt, das eine Eigenschaft des Window-Objekts ist. Sie können ein neues Standortobjekt mit der aktuellen URL wie folgt erstellen.

var currentLocation = window.location;

Grundstruktur einer URL

<protocol>//<hostname>:<port>/<pathname><search><hash>

  1. Protokoll - Gibt den Protokollnamen an, der für den Zugriff auf die Ressource im Internet verwendet wird. (HTTP (ohne SSL) oder HTTPS (mit SSL))

  2. Hostname - Der Hostname gibt den Host an, dem die Ressource gehört. Zum Beispiel www..com. Ein Server stellt Dienste unter Verwendung des Hostnamens bereit.

  3. port - Eine Portnummer, die verwendet wird, um einen bestimmten Prozess zu erkennen, an den eine Internet- oder andere Netzwerknachricht weitergeleitet werden soll, wenn sie auf einem Server eintrifft.

  4. Pfadname - Der Pfad gibt Informationen zu der bestimmten Ressource auf dem Host an, auf die der Webclient zugreifen möchte. Zum Beispiel .com/index.html.

  5. query - Eine Abfragezeichenfolge folgt der Pfadkomponente und stellt eine Zeichenfolge von Informationen bereit, die die Ressource für einen bestimmten Zweck verwenden kann (z. B. als Parameter für eine Suche oder als zu verarbeitende Daten).

  6. Hash - Der Ankerteil einer URL enthält das Hash-Zeichen (#).

Mit diesen Standortobjekteigenschaften können Sie auf alle diese URL-Komponenten zugreifen

  1. hash -Setzt oder gibt den Ankerteil einer URL zurück.
  2. host -Setzt den Hostnamen und den Port einer URL oder gibt diesen zurück.
  3. Hostname - Legt den Hostnamen einer URL fest oder gibt diesen zurück.
  4. href - Legt die gesamte URL fest oder gibt sie zurück.
  5. Pfadname - Legt den Pfadnamen einer URL fest oder gibt diesen zurück.
  6. port - Legt die vom Server für eine URL verwendete Portnummer fest oder gibt diese zurück.
  7. protocol - Legt das Protokoll einer URL fest oder gibt es zurück.
  8. search - Legt den Abfrageteil einer URL fest oder gibt diesen zurück

Jetzt Wenn Sie eine Seite ändern oder den Benutzer auf eine andere Seite umleiten möchten, können Sie die Eigenschaft href des Location-Objekts wie folgt verwenden

Sie können die href-Eigenschaft des Location-Objekts verwenden.

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

Location Object verfügt auch über diese drei Methoden

  1. assign () - Lädt ein neues Dokument.
  2. reload () - Lädt das aktuelle Dokument neu.
  3. replace () - Ersetzt das aktuelle Dokument durch ein neues

Sie können assign () - und replace-Methoden verwenden, um auch zu anderen Seiten wie diesen umzuleiten

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

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

Unterschiede zwischen " assign ()" und "replace ()" - Der Unterschied zwischen "replace ()" und "assign ()" () besteht darin, dass "replace ()" die URL des aktuellen Dokuments aus dem Dokumentverlauf entfernt und daher nicht verwendet werden kann die Schaltfläche "Zurück", um zum Originaldokument zurückzukehren. Verwenden Sie also die Methode assign (), wenn Sie ein neues Dokument laden möchten und die Option geben möchten, zum ursprünglichen Dokument zurückzukehren.

Sie können die Eigenschaft location object href mit jQuery auch so ändern

$(location).attr('href',url);

Und daher können Sie den Benutzer zu einer anderen URL umleiten.


Javascript:

window.location.href='www.your_url.com';
window.top.location.href='www.your_url.com';
window.location.replace('www.your_url.com');

Abfrage:

var url='www.your_url.com';
$(location).attr('href',url);
$(location).prop('href',url);//instead of location you can use window

Sie können in jQuery folgendermaßen umleiten:

$(location).attr('href', 'http://yourPage.com/');

Sie müssen diese Zeile in Ihren Code einfügen:

$(location).attr("href","http://.com");

Wenn Sie jQuery nicht haben, gehen Sie mit JavaScript:

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

Versuche dies:

location.assign("http://www.google.com");

Beispielcode .


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

window.location = window.location.host

Es wäre hilfreich, wenn Sie drei verschiedene Umgebungen als Entwicklungs-, Bereitstellungs- und Produktionsumgebung verwenden würden.

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


jQuery wird nicht benötigt. Du kannst das:

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

So einfach ist das!

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


# HTML-Seitenumleitung mit jQuery / JavaScript

Versuchen Sie diesen Beispielcode:

function YourJavaScriptFunction()
{
    var i = $('#login').val();
    if (i == 'login')
        window.location = "login.php";
    else
        window.location = "Logout.php";
}

Wenn Sie eine vollständige URL als window.location = "www.google.co.in"; .


Es gibt drei Möglichkeiten, dies zu tun:

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

und...

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

Die letzte Option eignet sich am besten für eine herkömmliche Weiterleitung, da die Seite, zu der Sie vor der Weiterleitung in Ihrem Suchverlauf gegangen sind, nicht gespeichert wird. Wenn Sie jedoch nur einen Tab mit JavaScript öffnen möchten, können Sie eine der oben genannten Optionen verwenden. 1

BEARBEITEN: Das windowPräfix ist optional.


Ich musste diese Lächerlichkeit nur mit einer weiteren neueren jQuery-Methode aktualisieren:

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




redirect