javascript weiterleitung Wie kann ich auf eine andere Webseite umleiten?




url weiterleiten (24)

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


Sie können dies ohne jQuery tun als:

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

Und wenn Sie nur jQuery wollen, können Sie es wie folgt machen:

$jq(window).attr("location","http://yourdomain.com");

Grundsätzlich ist jQuery nur ein JavaScript- Framework. Um in diesem Fall einige Dinge wie die Umleitung auszuführen, können Sie einfach reines JavaScript verwenden. In diesem Fall stehen Ihnen also drei Optionen zur Verfügung, wenn Sie Vanille-JavaScript verwenden:

1) Durch das Ersetzen der Position wird der aktuelle Verlauf der Seite ersetzt, dh es ist nicht möglich, mit der Schaltfläche "Zurück" zur ursprünglichen Seite zurückzukehren.

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

2) Mit Location Assign wird der Verlauf für Sie gespeichert 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 Methoden, 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 damit umzugehen, dies wird jedoch nicht empfohlen, da es sich nur um eine reine JavaScript-Funktion für eine Zeile handelt. Sie können auch alle obigen 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:


Dies funktioniert mit jQuery:

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

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

In JavaScript und jQuery können wir den folgenden Code verwenden, um die eine Seite auf eine andere Seite umzuleiten:

window.location.href="http://google.com";
window.location.replace("page1.html");

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.


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.


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

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"; .


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 lieferte "eine Antwort auf die Frage" in dem Sinne, dass nach einer Lösung "using jQuery" gefragt wurde, die in diesem Fall dazu führt, dass sie irgendwie in die Gleichung eingeht.

Ferrybig muss anscheinend den Witz erklären (immer noch ein Scherz, ich bin mir sicher, dass das Bewertungsformular nur begrenzte Möglichkeiten bietet), also ohne weiteres:

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

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

Die Funktion heißt jQueryCode , obwohl es nichts mit jQuery zu tun hat, und der Aufruf einer Funktion somethingCode ist einfach schrecklich, insbesondere, wenn es sich bei dem Objekt nicht einmal um eine Sprache handelt.

Die "85 Bytes" beziehen sich auf Code Golf. Golfen sollte man natürlich nicht außerhalb des Codegolfs, und außerdem ist diese Antwort eindeutig nicht wirklich Golf.

Im Grunde erschaudern.


Dafür gibt es viele Möglichkeiten.

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

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;

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

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>

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

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

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

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

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

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

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.


Bevor ich anfange, ist jQuery eine JavaScript-Bibliothek, die für die DOM-Manipulation verwendet wird. Sie sollten jQuery also nicht für eine Seitenumleitung verwenden.

Ein Zitat von Jquery.com:

Während jQuery in älteren Browserversionen möglicherweise ohne größere Probleme ausgeführt wird, testen wir jQuery in diesen nicht aktiv und beheben im Allgemeinen keine Fehler, die in ihnen auftreten können.

Es wurde hier gefunden: https://jquery.com/browser-support/

JQuery ist also keine Komplettlösung für die Abwärtskompatibilität.

Die folgende Lösung mit rohem JavaScript funktioniert in allen Browsern und ist seit langem Standard. Sie benötigen daher keine Bibliotheken für die browserübergreifende Unterstützung.

Diese Seite wird nach 3000 Millisekunden zu google.com weitergeleitet

<!DOCTYPE html>
<html>
    <head>
        <title>example</title>
    </head>
    <body>
        <p>You will be redirected to google shortly.</p>
        <script>
            setTimeout(function(){
                window.location.href="http://www.google.com"; // The URL that will be redirected too.
            }, 3000); // The bigger the number the longer the delay.
        </script>
    </body>
</html>

Folgende Optionen stehen zur Verfügung:

window.location.href="url"; // Simulates normal navigation to a new page
window.location.replace("url"); // Removes current URL from history and replaces it with a new URL
window.location.assign("url"); // Adds new URL to the history stack and redirects to the new URL

window.history.back(); // Simulates a back button click
window.history.go(-1); // Simulates a back button click
window.history.back(-1); // Simulates a back button click
window.navigate("page.html"); // Same as window.location="url"

Wenn Sie "Ersetzen" verwenden, kehrt die Schaltfläche "Zurück" nicht zur Umleitungsseite zurück, als wäre sie nie im Verlauf enthalten. Wenn Sie möchten, dass der Benutzer zur Umleitungsseite zurückkehren kann, verwenden Sie window.location.href oder window.location.assign . Wenn Sie eine Option verwenden, mit der der Benutzer zur Umleitungsseite zurückkehren kann, denken Sie daran, dass Sie beim Aufrufen der Umleitungsseite zurückgeleitet werden. Berücksichtigen Sie dies, wenn Sie eine Option für Ihre Umleitung auswählen. Unter Bedingungen, bei denen die Seite nur umgeleitet wird, wenn der Benutzer eine Aktion ausführt, ist es in Ordnung, wenn die Seite im Verlauf der Zurück-Schaltfläche enthalten ist. Wenn die Seite jedoch automatisch umgeleitet wird, sollten Sie "Ersetzen" verwenden, damit der Benutzer die Schaltfläche "Zurück" verwenden kann, ohne zu der von der Umleitung gesendeten Seite zurückkehren zu müssen.

Sie können auch Metadaten verwenden, um eine Seitenumleitung wie folgt auszuführen.

META Refresh

<meta http-equiv="refresh" content="0;url=http://evil.com/" />

META-Standort

<meta http-equiv="location" content="URL=http://evil.com" />

BASE-Hijacking

<base href="http://evil.com/" />

Auf dieser Seite finden Sie viele weitere Methoden, um Ihren ahnungslosen Client zu einer Seite umzuleiten, die er möglicherweise nicht aufrufen möchte (keine davon ist von jQuery abhängig):

https://code.google.com/p/html5security/wiki/RedirectionMethods

Ich möchte auch darauf hinweisen, dass die Leute nicht gerne nach dem Zufallsprinzip weitergeleitet werden. Leiten Sie Personen nur um, wenn dies unbedingt erforderlich ist. Wenn Sie Leute nach dem Zufallsprinzip umleiten, werden sie nie mehr zu Ihrer Site weitergeleitet.

Der nächste Teil ist hypothetisch:

Sie werden möglicherweise auch als bösartige Website gemeldet. Wenn dies passiert, warnt der Browser des Benutzers die Benutzer möglicherweise, dass Ihre Website schädlich ist, wenn sie auf einen Link zu Ihrer Website klicken. Was auch passieren kann, ist, dass Suchmaschinen möglicherweise Ihre Bewertung senken, wenn Personen über eine schlechte Erfahrung auf Ihrer Website berichten.

Lesen Sie die Richtlinien für Google Webmaster zu Weiterleitungen: https://support.google.com/webmasters/answer/2721217?hl=en&ref_topic=6001971

Hier ist eine lustige kleine Seite, die Sie aus der Seite herauswirft.

<!DOCTYPE html>
<html>
    <head>
        <title>Go Away</title>
    </head>
    <body>
        <h1>Go Away</h1>
        <script>
            setTimeout(function(){
                window.history.back();
            }, 3000);
        </script>
    </body>
</html>

Wenn Sie die beiden Seitenbeispiele miteinander kombinieren, erhalten Sie eine kleine Umleitungsschleife, die garantiert, dass Ihr Benutzer Ihre Website nie wieder verwenden möchte.



Versuche dies:

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

Beispielcode .





redirect