it-swarm.com.de

Wie leite ich auf eine andere Webseite um?

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

7728
venkatachalam

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 die Verwendung von _window.location.href_, da replace() die ursprüngliche Seite im Sitzungsverlauf nicht beibehält, was bedeutet, dass der Benutzer nicht in einem endlosen Back-Button-Fiasko stecken bleibt.

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://stackoverflow.com");

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

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://stackoverflow.com')
1613
Boris Guéry

Standard "Vanilla" JavaScript-Weg, um eine Seite umzuleiten

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

Oder einfacher: (da window Global ist)

location.href = 'newPage.html';

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

(Ansonsten ignoriere diesen letzten Teil)


Der folgende Abschnitt richtet sich an Benutzer, 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 verwenden.

Das Testen anhand von HTTP_REFERER (Einfügen von URLs, Sitzung 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 in Droops Link in den Kommentaren vermerkt)


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

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')
408
Govind Singh

Das funktioniert für jeden Browser:

window.location.href = 'your_url';
314
Fred

Es wäre hilfreich, wenn Sie etwas aussagekräftiger wären, 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 ruft einen jQuery-Code auf, der über AJAX die nächste Seite 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
    });
});
285
tvanfosson

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

Das Hinzufügen eines Noscript-Abschnitts mit einem HTML-Refresh-Meta-Tag ist ebenfalls eine gute Lösung. Ich schlage vor, dass Sie dieses JavaScript-Umleitungstool 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 -->
244

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.

219
Nadeem Yasin

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>

enter image description here

  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.stackoverflow.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 stackoverflow.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 - Legt den Hostnamen und den Port einer URL fest oder gibt ihn 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. Suche - Legt den Abfrageteil einer URL fest oder gibt ihn zurück

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

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

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

Location Object haben auch 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.stackoverflow.com");

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

Wie sich assign () und replace () unterscheiden - Der Unterschied zwischen replace ( ) method und assign () method () bedeutet, dass replace () die URL des aktuellen Dokuments aus dem Dokumentverlauf entfernt, dh es ist nicht möglich, mit der Schaltfläche "Zurück" 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 des Standortobjekts href auch mit jQuery so ändern

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

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

205
Nikhil Agrawal

Grundsätzlich ist jQuery nur ein JavaScript Framework und für einige der Dinge wie Umleitung In diesem Fall können Sie nur reines JavaScript verwenden. In diesem Fall haben Sie mit Vanilla JavaScript drei Möglichkeiten:

1) Bei Verwendung von location replace wird der aktuelle Verlauf der Seite ersetzt, dh, es ist nicht möglich, das back zu verwenden. Taste, um zur ursprünglichen Seite zurückzukehren.

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

2) Mit location assign wird der Verlauf für Sie gespeichert und mit back können Sie zur ursprünglichen Seite zurückkehren:

window.location.assign("http://stackoverflow.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://stackoverflow.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 oben genannten Funktionen ohne Fenster verwenden, wenn Sie sich bereits im Fensterbereich befinden, z. B. window.location.replace("http://stackoverflow.com");. könnte location.replace("http://stackoverflow.com"); sein

Auch ich zeige sie alle auf dem Bild unten:

location.replace location.assign

192
Alireza

Sollte nur mit window.location eingestellt werden können.

Beispiel:

window.location = "https://stackoverflow.com/";

Hier ist ein früherer Beitrag zum Thema: Wie leite ich auf eine andere Webseite um?

190
Newse

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 ihnen 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 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 Weiterleitungsseite zurück, als wäre sie nie im Verlauf enthalten. Wenn Sie möchten, dass der Benutzer zur Weiterleitungsseite 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 Absatz ist hypothetisch:

Sie werden möglicherweise auch als bösartige Website gemeldet. Wenn dies passiert, warnt der Browser des Nutzers die Nutzer 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=de&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.

163
var url = 'asdf.html';
window.location.href = url;
157
user188973

Sie können das 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");
139
ScoRpion

Dies funktioniert mit jQuery:

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

# 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"; angeben möchten.

86
Sakthi Karthik

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

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

Wenn Sie jQuery nicht haben, gehen Sie mit JavaScript:

window.location.replace("http://stackoverflow.com");
window.location.href("http://stackoverflow.com");
77
Ashish Ratan

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>

Angenommen, Sie haben dieses Snippet einfach in eine redirect/index.html -Datei auf Ihrer Website eingefügt. Sie können es wie folgt verwenden.

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

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

Link zur Dokumentation

nd so erstellen Sie eine einfache Weiterleitungsseite mit JavaScript

Bearbeiten:

Es gibt auch eine Sache zu beachten. Ich habe window.location.replace in meinen Code eingefügt, da er meiner Meinung nach für eine Weiterleitungsseite geeignet ist. Sie müssen jedoch wissen, dass Sie bei Verwendung von window.location.replace umgeleitet werden, wenn Sie in Ihrem Browser auf die Schaltfläche "Zurück" klicken. nicht ​​kehrte zur Weiterleitungsseite zurück, und es wird zur vorherigen Seite zurückgekehrt. Schauen Sie sich diese kleine Demo an.

Beispiel:

Der Prozess: store home => 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;
75
iConnor

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

So leiten Sie einfach mit JavaScript 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 man ein Element oder ein Ereignis auswählt .

     $('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.

70
SergeDirect

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

Versuche dies:

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

Beispielcode .

59
tilak

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 mit document.loacation.href.replace('URL').

54
MayorMonty

Zuerst richtig schreiben. Sie möchten innerhalb einer Anwendung nach einem anderen Link von Ihrer Anwendung nach einem anderen Link navigieren. Hier ist der Code:

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

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

51
Anup

Sie können in jQuery folgendermaßen umleiten:

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

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

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. Dies ist ein Witz.

Dies lieferte "eine Antwort auf die Frage" in dem Sinne, dass es nach einer Lösung "using jQuery" fragte, was in diesem Fall bedeutet, sie irgendwie in die Gleichung zu zwingen.

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 die Funktion attr() von jQuery für die Objekte location oder window unnötigerweise.

Diese Antwort missbraucht es auch, aber auf lächerlichere Weise. Anstatt ihn zum Festlegen des Speicherorts zu verwenden, wird attr() verwendet, um eine Funktion abzurufen, mit der der Speicherort festgelegt wird.

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

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.

44
1j01

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");
43
user2496033

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

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 ist für eine herkömmliche Weiterleitung am besten geeignet, da die Seite, zu der Sie gegangen sind, bevor sie in Ihrem Suchverlauf weitergeleitet wurde, nicht gespeichert wird. Wenn Sie jedoch nur einen Tab mit JavaScript öffnen möchten, können Sie einen der oben genannten Werte verwenden. . 1

BEARBEITEN: Das Präfix window ist optional.

37
Ben

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

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

Schreiben Sie den folgenden Code nach dem Abschnitt PHP, HTML oder jQuery. Wenn Sie sich in der Mitte des Abschnitts PHP oder HTML befinden, verwenden Sie das Tag <script>.

location.href = "http://google.com"
35
Bidyut

jQuery-Code zum Weiterleiten einer Seite oder URL

Erster Weg

Hier ist der jQuery-Code zum Umleiten einer Seite. Da ich diesen Code in die Funktion $ (document) .ready () eingefügt habe, wird er ausgeführt, sobald die Seite geladen ist.

var url = "http://stackoverflow.com";
$(location).attr('href',url);

Sie können sogar eine URL direkt an die attr () -Methode übergeben, anstatt eine Variable zu verwenden.

Zweiter Weg

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

Sie können auch wie folgt codieren (beide sind intern identisch):

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

Wenn Sie neugierig auf den Unterschied zwischen window.location und window.location.href sind, können Sie feststellen, dass das letztere die Eigenschaft href explizit setzt, während das erstere dies implizit tut. Since window.location gibt ein Objekt zurück, das standardmäßig die Eigenschaft .href festlegt.

Dritter Weg

Es gibt eine andere Möglichkeit, eine Seite mit JavaScript umzuleiten, nämlich die Methode replace() des Objekts window.location. Sie können eine neue URL an die Methode replace() übergeben, die eine HTTP-Umleitung simuliert. Denken Sie übrigens daran, dass die Methode window.location.replace() die ursprüngliche Seite nicht in den Sitzungsverlauf einfügt, was sich auf das Verhalten der Schaltfläche "Zurück" auswirken kann. Manchmal ist es das, was Sie wollen, also gehen Sie vorsichtig damit um.

// Doesn't put originating page in history
window.location.replace("http://stackoverflow.com");

Vierter Weg

like attr () method (nach Einführung von jQuery 1.6)

var url = "http://stackoverflow.com";
$(location).prop('href', url);
33

Verwenden Sie in jQuery$(location).attr('href', url):

$(document).ready(function(){
    var url = "https://www.youtube.com/watch?v=JwMKRevYa_M";
    $(location).attr('href', url); // Using this
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

In raw JavaScript gibt es eine Reihe von Möglichkeiten, dies zu erreichen:

window.location.href="https://www.youtube.com/watch?v=JwMKRevYa_M";

- setzt die Eigenschaft href explizit.

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

- wird implizit ausgeführt Da window.location ein Objekt zurückgibt, das standardmäßig die .href -Eigenschaft festlegt.

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

- Ersetzt die Position des aktuellen Fensters durch das neue.

self.location = "http://www.somewebsite.com";

- Legt die Position des aktuellen Fensters selbst fest.

Hier ein Beispiel für eine JavaScript-Umleitung nach einer bestimmten Zeit (3 Sekunden):

<script>
    setTimeout(function() {
        window.location.href = "https://www.youtube.com/";
    }, 3000);
</script>
29
Inconnu

Verwendung von JavaScript:

Methode 1:

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

Methode 2:

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

Verwenden von jQuery:

Methode 1: $ (Ort)

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

Methode 2: Wiederverwendbare Funktion

jQuery.fn.redirectTo = function(url){
    window.location.href = url;
}

jQuery(window).redirectTo("http://google.com");
29
Kalpesh Panchal

In JavaScript und jQuery verwenden wir diesen folgenden Code, um die Seite umzuleiten:

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

Sie können jedoch eine Funktion in jQuery erstellen, um die Seite umzuleiten:

jQuery.fn.redirect=function(url)
{
    window.location.href=url;
}

Und rufen Sie diese Funktion auf:

jQuery(window).redirect("http://stackoverflow.com/")
27
Muhammad Waqas

Verwenden Sie die jQuery-Funktion:

$.extend({
  redirectPost: function(location, args) {
    var form = '';
    $.each(args, function(key, value) {
      form += '<input type="hidden" name="' + key + '" value="' + value + '">';
    });
    $('<form action="' + location + '" method="POST">' + form + '</form>').appendTo($(document.body)).submit();
  }
});

In Ihrem Code verwenden Sie es wie folgt:

$.redirectPost("addPhotos.php", {pimreference:  $("#pimreference").val(), tag: $("#tag").val()});
23
stratum

Einfach in JavaScript können Sie auf eine bestimmte Seite umleiten, indem Sie Folgendes verwenden:

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

Oder

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

Oder

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

sing jQuery:

$(window).attr("location","http://www.test.com");
17
vipul sorathiya
<script type="text/javascript">
var url = "https://yourdomain.com";

// IE8 and lower fix
if (navigator.userAgent.match(/MSIE\s(?!9.0)/))
{
    var referLink = document.createElement("a");
    referLink.href = url;
    document.body.appendChild(referLink);
    referLink.click();
}

// All other browsers
else { window.location.replace(url); }
</script>
17
Jaydeep Jadav

Javascript ist sehr umfangreich. Wenn Sie zu einer anderen Seite springen möchten, haben Sie drei Möglichkeiten.

 window.location.href='otherpage.com';
 window.location.assign('otherpage.com');
 //and...

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

Wenn Sie zu einer anderen Seite wechseln möchten, können Sie jede dieser Optionen verwenden, wenn dies Ihre Anforderung ist. Alle drei Optionen sind jedoch auf verschiedene Situationen beschränkt. Wählen Sie mit Bedacht aus, je nach Ihren Anforderungen.

wenn Sie mehr über das Konzept erfahren möchten. Sie können weiter gehen.

window.location.href; returns the href (URL) of the current page
window.location.hostname; returns the domain name of the web Host
window.location.pathname; returns the path and filename of the current page
window.location.protocol; returns the web protocol used (http: or https:)
window.location.assign; loads a new document
17
Asif J

Sie können es wie im folgenden Code verwenden, wobei getRequestToForwardPage die Anforderungszuordnung ist ( URL ). Sie können auch Ihre URL verwenden.

function savePopUp(){
    $.blockUI();
    $.ajax({
        url:"GuestHouseProcessor?roomType="+$("#roomType").val(),
        data: $("#popForm").serialize(),
        dataType: "json",
        error: (function() {
            alert("Server Error");
            $.unblockUI();
    }),
    success: function(map) {
        $("#layer1").hide();
        $.unblockUI();
        window.location = "getRequestToForwardPage";
    }
});

Dies gilt für den gleichen Kontext der Anwendung.

Wenn Sie nur jQuery-spezifischen Code verwenden möchten, kann der folgende Code hilfreich sein:

 $(location).attr('href',"http://www.google.com");
 $jq(window).attr("location","http://www.google.com");
 $(location).prop('href',"http://www.google.com"); 
16
Vinay Sharma

Hier ist der Code zum Weiterleiten auf eine andere Seite mit einer Zeitüberschreitung von 10 Sekunden.

<script>
    function Redirect()
    {
        window.location="http://www.adarshkr.com";
    }

    document.write("You will be redirected to a new page in 10 seconds.");
    setTimeout('Redirect()', 10000);
</script>

Sie können dies auch auf Knopfdruck mit location.assign tun:

<input type="button" value="Load new document" onclick="newPage()">
<script>
    function newPage() {
        window.location.assign("http://www.adarshkr.com")
    }
</script>
15

Verwenden:

function redirect(a) {
    location = a
}

Und nenne es mit: redirect([url]);

Es gibt keine Notwendigkeit für die href nach location, wie es impliziert ist.

14
cascading-style
<script type="text/javascript">
    if(window.location.href === "http://stackoverflow.com") {      
         window.location.replace("https://www.google.co.in/");
       }
</script>
14
sneha

Sie können verwenden:

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

Die Methode replace() speichert die ursprüngliche Seite nicht im Sitzungsverlauf, sodass der Benutzer nicht über die Schaltfläche "Zurück" zurückgehen und erneut umgeleitet werden kann. HINWEIS: In diesem Fall ist die Schaltfläche "Zurück" des Browsers deaktiviert.

Wenn Sie jedoch einen Effekt wünschen, der dem Klicken auf einen Link entspricht, sollten Sie Folgendes auswählen:

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

In diesem Fall ist die Schaltfläche "Zurück" des Browsers aktiv.

14
madhur

Sie können die Url.Action für das Ereignis Button click im Skriptabschnitt wie folgt schreiben.

function onclick() {
        location.href = '@Url.Action("Index","Home")';
    }
13
wild coder

Sie können die Seite mithilfe der folgenden Methoden umleiten:

  1. Durch die Verwendung eines Meta-Tags im head - <meta http-equiv="refresh" content="0;url=http://your-page-url.com" />. Beachten Sie, dass content="0;... verwendet wird, nach wie vielen Sekunden Sie die Seite umleiten müssen

  2. Mit JavaScript: window.location.href = "http://your-page-url.com";

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

13
SantoshK

Dies ist sehr einfach zu implementieren. Sie können verwenden:

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

Dadurch wird der Verlauf der vorherigen Seite gespeichert. Man kann also zurückgehen, indem man auf den Zurück-Button des Browsers klickt.

Oder:

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

Diese Methode speichert nicht den Verlauf der vorherigen Seite. Die Zurück-Schaltfläche wird in diesem Fall deaktiviert.

13

Einzelseitenanwendung, innerhalb derselben Anwendungsroute

window.location.pathname = '/stack';

JavaScript:

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

jQuery:

$(location).attr('href', "http://www.stack.com");
$(window).attr('location', "http://www.stack.com");

Winkel 4

import { Router } from '@angular/router';
export class NavtabComponent{
    constructor(private router: Router) {
    }
    this.router.navigate(['bookings/taxi']);
}
13
HD..

Ich füge nur einen anderen Weg hinzu:

Fügen Sie einfach die folgende Codezeile hinzu, um für eine bestimmte Seite/einen bestimmten Link Ihrer Website auf eine andere Seite umzuleiten:

<script>
    if(window.location.href == 'old_url')
    {
        window.location.href="new_url";
    }

    // Another URL redirect
    if(window.location.href == 'old_url2')
    {
        window.location.href="new_url2";
    }
</script>

Für ein Beispiel aus dem wirklichen Leben,

<script>
    if(window.location.href == 'https://old-site.com')
    {
        window.location.href="https://new-site.com";
    }

    // Another URL redirect
    if(window.location.href == 'https://old-site.com/simple-post.html')
    {
        window.location.href="https://new-site.com/simple-post.html";
    }
</script>

Mit diesem einfachen Code können Sie die gesamte Site oder eine einzelne Seite umleiten.

12

Wenn Sie reines Javascript bevorzugen, wurde mir klar, dass die Verwendung von document.location.href = "https://example.com" oder window.location.href = "https://example.com" Kompatibilitätsprobleme in Firefox verursacht. Versuchen Sie stattdessen Folgendes zu verwenden:

location.href = "https://example.com";
location.replace("http://example.com");

In meinem Fall hat sich das Problem gelöst. Viel Glück!

Ich benutze bereits die Funktion redirect () von JavaScript. Es funktioniert.

<script type="text/javascript">
    $(function () {
        //It's similar to HTTP redirect
        window.location.replace("http://www.Technomark.in");

        //It's similar to clicking on a link
        window.location.href = "Http://www.Technomark.in";
    })
</script>
11
user1012506
  1. location.assign ():

    Wenn Sie einen Routenpfad zuweisen möchten, indem Sie einen Pfad eingeben. Durch Zuweisen erhalten Sie einen Verlauf, auch nachdem der Pfad zugewiesen wurde.

    Verwendungsmethode: Wert sollte übergeben werden.

    Zum Beispiel: location.assign("http://google.com")

    Enter image description here

  2. location.href

    Kann definieren, wie ein Pfad eingegeben werden soll ... Und es wird in einen bestimmten Pfad umgeleitet, sobald es eingerichtet ist, und es wird den Verlauf beibehalten ...

    Verwendungsmethode: Es sollte ein Wert zugewiesen werden.

    Zum Beispiel: location.href = "http://google.com"

  3. location.replace ():

    Es ist hilfreich, einen Pfad zu ersetzen, wenn Sie den Verlauf nicht beibehalten möchten. Es gibt Ihnen keine Geschichte, wenn Sie den Pfad ersetzen.

    Verwendungsmethode: Wert sollte übergeben werden.

    Zum Beispiel: location.replace("http://google.com")

    Enter image description here


assign() und href sind ähnlich, und beide können den Verlauf enthalten. assign übergibt einen Wert und href weist ihn zu.

Sie können es mit JavaScript selbst erreichen, ohne jQuery zu verwenden, indem Sie Folgendes zuweisen:

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

Mit jQuery können Sie ähnliche Ergebnisse erzielen wie unten. Es wird genau das gleiche tun wie oben,

$(window).attr('location', "http://www.google.com");
$(location).attr('href', "http://www.google.com");

Sie können den Unterschied zwischen beiden leicht verstehen ...

Hier ist das Location-Objekt,

Location API from chrome

11

Wenn Sie zu einer Route innerhalb der gleichen App einfach umleiten möchten

window.location.pathname = '/examplepath'

wäre der Weg zu gehen.

10
RuNpiXelruN

Mit location.replace() werden Sie umgeleitet, ohne den Verlauf der vorherigen Seite zu speichern. Dies ist besser zu verwenden, wenn ein Formular gesendet wird. Aber wenn Sie Ihre Geschichte behalten möchten, müssen Sie location.href=//path verwenden.

Beispiele:

// form with steps
document.getElementById('#next').onclick = function() {
   window.location.href='/step2' // iteration of steps;
}

// go to next step
document.getElementById('#back').onclick = function() {
   window.history.back();
}

// finish 
document.getElementById('#finish').onclick = function() {
   window.location.href = '/success';
}

// on success page
window.onload = function() {
    setTimeout(function() {
       window.location.replace('/home'); // i can't go back to success page by pressing the back button
    },3000);
}
10
Andrei Todorut

So können Sie eine Weiterleitung von der Client-Seite durchführen:

<!DOCTYPE html>
<html>
    <head>
        <title>JavaScript and jQuery example to redirect a page or URL </title>
    </head>
    <body>
        <div id="redirect">
            <h2>Redirecting to another page</h2>
        </div>

        <script src="scripts/jquery-1.6.2.min.js"></script>
        <script>
            // JavaScript code to redirect a URL
            window.location.replace("http://stackoverflow.com");
            // window.location.replace('http://code.shouttoday.com');

            // Another way to redirect page using JavaScript

            // window.location.assign('http://code.shouttoday.com');
            // window.location.href = 'http://code.shouttoday.com';
            // document.location.href = '/relativePath';

            //jQuery code to redirect a page or URL
            $(document).ready(function(){
                //var url = "http://code.shouttoday.com";
                //$(location).attr('href',url);
                // $(window).attr('location',url)
                //$(location).prop('href', url)
            });
        </script>
    </body>
</html>
8
Zigri2612

Benutzer mit jQuery/JavaScript umleiten

Durch die Verwendung des Location-Objekts in jQuery oder JavaScript können wir den Benutzer auf eine andere Webseite umleiten.

In jQuery

Der Code zum Weiterleiten des Benutzers von einer Seite zu einer anderen lautet:

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

In JavaScript

Der Code zum Weiterleiten des Benutzers von einer Seite zu einer anderen lautet:

var url = 'http://www.example.com';
window.location.href = url;

oder

var url = 'http://www.example.com';
window.location = url;
6
devst3r

In meiner Berufserfahrung ist JavaScript viel besser umzuleiten.

Es hängt davon ab, wie Sie den Standort ändern möchten. Wenn Sie Ihre Website im Nutzerverlauf protokollieren möchten, verwenden Sie window.location.href='ur website';. Andernfalls verwenden Sie window.location.replace("your website");, um den Vorgang ohne Protokollierung auszuführen.

5
Omkaar.K

So benutze ich es.

   window.location.replace('yourPage.aspx');   
   // If you're on root and redirection page is also on the root

   window.location.replace(window.location.Host + '/subDirectory/yourPage.aspx');

   // If you're in sub directory and redirection page is also in some other sub directory.
5
dnxit