it-swarm.dev

Come reindirizzare a un'altra pagina Web?

Come posso reindirizzare l'utente da una pagina all'altra utilizzando jQuery o puro JavaScript?

7729
venkatachalam

Uno non semplicemente reindirizza utilizzando jQuery

jQuery non è necessario e window.location.replace(...) simulerà al meglio un reindirizzamento HTTP.

window.location.replace(...) è meglio che usare window.location.href, perché replace() non mantiene la pagina di origine nella cronologia della sessione, il che significa che l'utente non si bloccherà in un fiasco back-tasto senza fine.

Se vuoi simulare qualcuno cliccando su un link, usalocation.href

Se vuoi simulare un reindirizzamento HTTP, usalocation.replace

Ad esempio:

// 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";
13935
Ryan McGeary

ATTENZIONE: Questa risposta è stata semplicemente fornita come possibile soluzione; è ovviamente not la soluzione migliore, in quanto richiede jQuery. Invece, preferisci la pura soluzione JavaScript.

$(location).attr('href', 'http://stackoverflow.com')
1570
Boris Guéry

Standard JavaScript "Vanilla" per reindirizzare una pagina:

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


Se sei qui perché stai perdendo HTTP_REFERER durante il reindirizzamento, continua a leggere:


La seguente sezione è per coloro che usano HTTP_REFERER come una delle molte misure sicure (anche se non è una grande misura protettiva). Se stai utilizzando Internet Explorer 8 o inferiore, queste variabili si perdono quando si utilizza qualsiasi forma di reindirizzamento delle pagine JavaScript (location.href, ecc.).

Di seguito implementeremo un'alternativa per IE8 e inferiore in modo da non perdere HTTP_REFERER. Altrimenti puoi quasi sempre usare semplicemente window.location.href.

Provare contro HTTP_REFERER (incollare URL, sessione, ecc.) Can è utile per sapere se una richiesta è legittima. ( Nota: ci sono anche modi per aggirare/falsificare questi referrer, come notato dal link di droop nei commenti)


Semplice soluzione di test cross-browser (da fallback a window.location.href per Internet Explorer 9+ e tutti gli altri browser)

Utilizzo: 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; 
    }
}
579

Ci sono molti modi per farlo.

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

Questo funziona per ogni browser:

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

Sarebbe utile se tu fossi un po 'più descrittivo in quello che stai cercando di fare. Se stai cercando di generare dati pagati, ci sono alcune opzioni su come farlo. È possibile generare collegamenti separati per ciascuna pagina a cui si desidera poter accedere direttamente.

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

Si noti che la pagina corrente nell'esempio viene gestita in modo diverso nel codice e con CSS.

Se vuoi che i dati pagati vengano modificati tramite AJAX, è qui che entrerà jQuery. Quello che dovresti fare è aggiungere un gestore di clic a ciascuno dei tag di ancoraggio corrispondenti a una pagina diversa. Questo gestore di clic invoca un codice jQuery che va e recupera la pagina successiva tramite AJAX e aggiorna la tabella con i nuovi dati. L'esempio seguente presuppone che si disponga di un servizio Web che restituisce i dati della nuova pagina.

$(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
    });
});
280
tvanfosson

Penso anche che location.replace(URL) sia il modo migliore, ma se vuoi notificare ai motori di ricerca il tuo reindirizzamento (non analizzano il codice JavaScript per vedere il reindirizzamento) dovresti aggiungere il meta tag rel="canonical" al tuo sito web.

Aggiungere una sezione noscript con un meta tag di aggiornamento HTML al suo interno è anche una buona soluzione. Ti suggerisco di utilizzare questo strumento di reindirizzamento JavaScript per creare reindirizzamenti. Ha anche il supporto di Internet Explorer per passare il referrer HTTP.

Il codice di esempio senza ritardi è simile al seguente:

<!-- 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 -->
237
Patartics Milán

Ma se qualcuno vuole reindirizzare alla home page, può usare il seguente frammento.

window.location = window.location.Host

Sarebbe utile se hai tre diversi ambienti come sviluppo, messa in scena e produzione.

Puoi esplorare questa finestra o l'oggetto window.location semplicemente mettendo queste parole in Chrome Console o Firebug 's Console.

212
Nadeem Yasin

JavaScript fornisce molti metodi per recuperare e modificare l'URL corrente che viene visualizzato nella barra degli indirizzi del browser. Tutti questi metodi utilizzano l'oggetto Location, che è una proprietà dell'oggetto Window. Puoi creare un nuovo oggetto Location con l'URL corrente come segue.

var currentLocation = window.location;

Struttura di base di un URL

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

enter image description here

  1. Protocollo: specifica il nome del protocollo da utilizzare per accedere alla risorsa su Internet. (HTTP (senza SSL) o HTTPS (con SSL))

  2. nome host - Il nome host specifica l'host che possiede la risorsa. Ad esempio, www.stackoverflow.com. Un server fornisce servizi utilizzando il nome dell'host.

  3. port - Un numero di porta utilizzato per riconoscere un processo specifico a cui un messaggio Internet o di altro tipo deve essere inoltrato quando arriva a un server.

  4. percorso: il percorso fornisce informazioni sulla risorsa specifica all'interno dell'host a cui il client Web desidera accedere. Ad esempio, stackoverflow.com/index.html.

  5. query - Una stringa di query segue il componente del percorso e fornisce una stringa di informazioni che la risorsa può utilizzare per alcuni scopi (ad esempio, come parametri per una ricerca o come dati da elaborare).

  6. hash - La parte di ancoraggio di un URL, include il segno di cancelletto (#).

Con queste proprietà dell'oggetto Posizione è possibile accedere a tutti questi componenti URL

  1. hash - Imposta o restituisce la parte di ancoraggio di un URL.
  2. Host - Imposta o restituisce il nome host e la porta di un URL.
  3. nomehost - Imposta o restituisce il nome host di un URL.
  4. href - Imposta o restituisce l'intero URL.
  5. pathname -Sets o restituisce il nome del percorso di un URL.
  6. port - Imposta o restituisce il numero di porta che il server utilizza per un URL.
  7. protocol -Set o restituisce il protocollo di un URL.
  8. search - Imposta o restituisce la porzione di query di un URL

Ora Se vuoi cambiare una pagina o reindirizzare l'utente ad un'altra pagina puoi usare la proprietà href dell'oggetto Location come this

È possibile utilizzare la proprietà href dell'oggetto Location.

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

Location Object hanno anche questi tre metodi

  1. assign () - Carica un nuovo documento.
  2. reload () - Ricarica il documento corrente.
  3. replace () - Sostituisce il documento corrente con uno nuovo

È possibile utilizzare assign () e sostituire i metodi anche per reindirizzare ad altre pagine come queste

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

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

How assign () and replace () differisce - La differenza tra replace () method e assign () method (), è che replace () rimuove l'URL della corrente documento dalla cronologia del documento, significa che non è possibile utilizzare il pulsante "indietro" per tornare al documento originale. Quindi usa il metodo assign () se vuoi caricare un nuovo documento e vuoi dare l'opzione per tornare al documento originale.

È possibile modificare la proprietà href dell'oggetto della posizione usando jQuery anche in questo modo

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

E quindi puoi reindirizzare l'utente ad un altro URL.

199
Nikhil Agrawal

Fondamentalmente jQuery è solo a JavaScript framework e per fare alcune cose come redirection in questo caso, puoi semplicemente usare puro JavaScript, quindi in quel caso tu avere 3 opzioni utilizzando JavaScript di Vanilla:

1) Usando la posizione replace , questo sostituirà la cronologia corrente della pagina, significa che non è possibile usare il pulsante back per tornare alla pagina originale.

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

2) Usando la posizione assign , questo manterrà la cronologia per te e con il pulsante back, puoi tornare alla pagina originale:

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

3) Consiglio di utilizzare uno di questi modi precedenti, ma questa potrebbe essere la terza opzione che utilizza puro JavaScript:

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

Puoi anche scrivere una funzione in jQuery per gestirla, ma non è raccomandata in quanto è una sola funzione JavaScript di una sola riga, inoltre puoi usare tutte le funzioni sopra senza finestra se sei già nello scope della finestra, per esempio window.location.replace("http://stackoverflow.com"); potrebbe essere location.replace("http://stackoverflow.com");

Inoltre li mostro tutti sull'immagine qui sotto:

 location.replace location.assign

188
Alireza

Dovrebbe essere in grado di impostare utilizzando window.location.

Esempio:

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

Ecco un post passato sull'argomento:

Come reindirizzare a un'altra pagina Web?

188
Newse

Prima di iniziare, jQuery è una libreria JavaScript utilizzata per la manipolazione DOM. Quindi non dovresti usare jQuery per un reindirizzamento di pagina.

Una citazione da Jquery.com:

Sebbene jQuery possa essere eseguito senza problemi importanti nelle versioni precedenti dei browser, non testiamo attivamente jQuery e generalmente non risolviamo bug che potrebbero apparire in essi.

È stato trovato qui: https://jquery.com/browser-support/

Quindi jQuery non è una soluzione completa per la retrocompatibilità.

La seguente soluzione che utilizza JavaScript raw funziona in tutti i browser e è stata standard per un lungo periodo di tempo, quindi non hai bisogno di librerie per il supporto cross browser.

Questa pagina reindirizzerà aGoogledopo 3000 millisecondi

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

Diverse opzioni sono le seguenti:

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"

Quando si utilizza la sostituzione, il pulsante Indietro non tornerà alla pagina di reindirizzamento, come se non fosse mai nella cronologia. Se si desidera che l'utente possa tornare alla pagina di reindirizzamento, utilizzare window.location.href o window.location.assign. Se usi un'opzione che consente all'utente di tornare alla pagina di reindirizzamento, ricorda che quando si entra nella pagina di reindirizzamento verrà reindirizzato. Quindi mettilo in considerazione quando scegli un'opzione per il tuo reindirizzamento. In condizioni in cui la pagina sta reindirizzando solo quando un'azione viene eseguita dall'utente, la pagina nella cronologia del pulsante Indietro sarà a posto. Tuttavia, se la pagina reindirizza automaticamente, è necessario utilizzare la sostituzione in modo che l'utente possa utilizzare il pulsante Indietro senza dover tornare indietro alla pagina inviata dal reindirizzamento.

Puoi anche utilizzare i metadati per eseguire un reindirizzamento della pagina come seguito.

META Refresh

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

Posizione META

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

BASE Hijacking

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

In questa pagina sono disponibili molti altri metodi per reindirizzare il client ignaro a una pagina che potrebbero non desiderare di visitare (non uno di questi dipende da jQuery):

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

Vorrei anche sottolineare che le persone non amano essere reindirizzate casualmente. Solo reindirizzare le persone quando assolutamente necessario. Se inizi a reindirizzare le persone a caso, non torneranno più sul tuo sito.

La parte successiva è ipotetica:

Potresti anche essere segnalato come sito dannoso. Se ciò accade, quando gli utenti fanno clic su un collegamento al tuo sito, il browser degli utenti potrebbe avvisare che il tuo sito è dannoso. Quello che può anche accadere è che i motori di ricerca potrebbero iniziare a perdere il tuo voto se le persone riportano una brutta esperienza sul tuo sito.

Consulta le Istruzioni per i webmaster di Google sui reindirizzamenti: https://support.google.com/webmasters/answer/2721217?hl=it&ref_topic=6001971

Ecco una piccola pagina divertente che ti prende a calci fuori dalla pagina.

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

Se unisci gli esempi di due pagine insieme, avresti un ciclo di reinstradamento infantile che garantirà che il tuo utente non vorrà mai più utilizzare il tuo sito.

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

Puoi farlo senza jQuery come:

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

E se vuoi solo jQuery, puoi farlo come:

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

Funziona con jQuery:

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

# HTML Reindirizza pagina usando jQuery/JavaScript

Prova questo codice di esempio:

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

Se vuoi dare un URL completo comewindow.location = "www.google.co.in";.

84
Sakthi Karthik

Devi inserire questa riga nel tuo codice:

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

Se non hai jQuery, vai con JavaScript:

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

Quindi, la domanda è come creare una pagina di reindirizzamento e non come reindirizzare a un sito Web?

Hai solo bisogno di usare JavaScript per questo. Ecco un piccolo codice che creerà una pagina di reindirizzamento dinamico.

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

Quindi dì che hai appena inserito questo snippet in un file redirect/index.html sul tuo sito web, puoi usarlo in questo modo.

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

E se vai a quel link, ti ​​reindirizzerà automaticamente a stackoverflow.com .

Collegamento alla documentazione

Ed è così che si crea una pagina di reindirizzamento Simple con JavaScript

Modificare:

C'è anche una cosa da notare. Ho aggiunto window.location.replace nel mio codice perché penso che si adatti a una pagina di reindirizzamento, ma, è necessario sapere che quando si utilizza window.location.replace e si viene reindirizzati, quando si preme il pulsante Indietro nel browser sarà non indietro alla pagina di reindirizzamento, e tornerà alla pagina precedente, dai un'occhiata a questa piccola cosa demo.

Esempio:

Il processo: store home => reindirizza la pagina a google => google

Quando in google: google => pulsante indietro nel browser => store home

Quindi, se questo è adatto alle tue esigenze, allora tutto dovrebbe andare bene. Se si desidera includere la pagina di reindirizzamento nella cronologia del browser, sostituirla

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

con

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

Sulla tua funzione click, aggiungi:

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

***** LA QUESTIONE ORIGINALE È STATA - "COME RIDIRIZZARE L'UTILIZZO DI JQUERY", DA QUI LA JQUERY DI ATTIVITÀ DELLA RISPOSTA >> CASE DI UTILIZZO COMPLEMENTARE *****

Per reindirizzare semplicemente a una pagina con JavaScript:

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

O se hai bisogno di un ritardo:

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

jQuery consente di selezionare elementi da una pagina Web con facilità. Puoi trovare tutto ciò che vuoi su una pagina e poi usare jQuery per aggiungere effetti speciali, reagire alle azioni degli utenti, o mostrare e nascondere il contenuto all'interno o all'esterno dell'elemento che hai selezionato. Tutti questi compiti iniziano con la conoscenza come selezionare un elemento o un evento .

     $('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);
     });

Immagina che qualcuno abbia scritto uno script/plugin che contiene 10000 linee di codice ?! Bene, con jQuery puoi connetterti a questo codice con solo una o due righe.

69
SergeDirect

Prova questo:

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

Snippet di codice dell'esempio .

58
tilak

jQuery non è necessario. Puoi farlo:

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

È così facile!

Il modo migliore per avviare una richiesta HTTP è con document.loacation.href.replace('URL').

54
MayorMonty

Per prima cosa scrivi correttamente. Si desidera navigare all'interno di un'applicazione per un altro collegamento dalla propria applicazione per un altro collegamento. Ecco il codice:

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

E se vuoi navigare tra le pagine all'interno della tua applicazione, allora ho anche il codice, se vuoi.

51
Anup

Puoi reindirizzare in jQuery in questo modo:

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

In JavaScript e jQuery possiamo usare il seguente codice per reindirizzare la pagina su un'altra pagina:

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

Javascript:

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

Jquery:

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

ECMAScript 6 + jQuery, 85 byte

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

Per favore non uccidermi, questo è uno scherzo. È uno scherzo. È uno scherzo.

Questo ha "fornito una risposta alla domanda", nel senso che richiedeva una soluzione "usando jQuery" che in questo caso implica forzare l'equazione in qualche modo.

A quanto pare, Ferrybig ha bisogno che lo scherzo (ancora sto scherzando, sono sicuro che ci sono opzioni limitate sul modulo di recensione), quindi senza ulteriori indugi:

Altre risposte utilizzano attr() di jQuery sugli oggetti location o window inutilmente.

Anche questa risposta la abusa, ma in un modo più ridicolo. Invece di usarlo per impostare la posizione, utilizza attr() per recuperare una funzione che imposta la posizione.

La funzione è chiamata jQueryCode anche se non c'è niente jQuery su di esso, e chiamare una funzione somethingCode è semplicemente orribile, specialmente quando qualcosa non è nemmeno una lingua.

"85 byte" è un riferimento a Code Golf. Il golf non è ovviamente qualcosa che dovresti fare al di fuori del codice golf, e inoltre questa risposta non è chiaramente giocabile.

Fondamentalmente, rabbrividire.

42
1j01

Ecco un reindirizzamento temporale. Puoi impostare il tempo di ritardo su quello che vuoi:

<!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>
39
Stefan Gruenwald

Ci sono tre modi principali per farlo,

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

e...

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

L'ultimo è il migliore, per un reindirizzamento tradizionale, perché non salverà la pagina a cui sei andato prima di essere reindirizzato nella cronologia delle ricerche. Tuttavia, se desideri semplicemente aprire una scheda con JavaScript, puoi utilizzare uno dei precedenti. 1

EDIT: il prefisso window è facoltativo.

36
Ben

Ho solo dovuto aggiornare questa ridicolaggine con un altro metodo jQuery più recente:

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

Scrivi il codice seguente dopo la sezione PHP, HTML o jQuery. Se ci si trova al centro della sezione PHP o HTML, utilizzare il tag <script>.

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

codice jQuery per reindirizzare una pagina o un URL

Primo modo

Ecco il codice jQuery per reindirizzare una pagina. Dato che ho inserito questo codice nella funzione $ (document) .ready (), verrà eseguito non appena la pagina verrà caricata.

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

È anche possibile passare un URL direttamente al metodo attr () , invece di usare una variabile.

Seconda via

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

Puoi anche scrivere un codice come questo (entrambi sono identici internamente):

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

Se sei curioso della differenza tra window.location e window.location.href, allora puoi vedere che quest'ultimo sta impostando esplicitamente la proprietà href, mentre quella precedente lo fa implicitamente. Poiché window.location restituisce un oggetto, che per impostazione predefinita imposta la proprietà .href.

Terza via

C'è un altro modo per reindirizzare una pagina usando JavaScript, il metodo replace() dell'oggetto window.location. Puoi passare un nuovo URL al metodo replace() e simulerà un reindirizzamento HTTP. A proposito, ricorda che il metodo window.location.replace() non inserisce la pagina di origine nella cronologia della sessione, il che può influire sul comportamento del pulsante Indietro. A volte, è quello che vuoi, quindi usalo con attenzione.

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

Quarta via

come metodo attr () (dopo jQuery 1.6 introduce)

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

In jQuery , usa $(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 , ci sono diversi modi per farlo:

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

- imposta la proprietà href esplicitamente.

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

- lo fa implicitamente Dal momento che window.location restituisce un oggetto, che per impostazione predefinita imposta la sua proprietà .href.

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

- sostituisce la posizione della finestra corrente con quella nuova.

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

- imposta la posizione della finestra corrente stessa.

Ecco un esempio di reindirizzamento JavaScript dopo un certo tempo (3 secondi):

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

Utilizzo di JavaScript:

Metodo 1:

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

Metodo 2:

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

Utilizzando jQuery:

Metodo 1: $ (posizione)

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

Metodo 2: funzione riutilizzabile

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

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

In JavaScript e jQuery utilizziamo questo codice seguente per reindirizzare la pagina:

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

Ma puoi fare una funzione in jQuery per reindirizzare la pagina:

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

E chiama questa funzione:

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

Usa la funzione jQuery:

$.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();
  }
});

Nel tuo codice lo usi in questo modo:

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

Semplicemente in JavaScript, puoi reindirizzare a una pagina specifica utilizzando il seguente:

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

O

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

O

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

Utilizzando jQuery:

$(window).attr("location","http://www.test.com");
18
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 è molto esteso. Se vuoi passare a un'altra pagina hai tre opzioni.

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

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

Siccome vuoi passare ad un'altra pagina puoi usarne qualcuna se questo è il tuo requirment Tuttavia, tutte e tre le opzioni sono limitate a situazioni diverse. Scegli saggiamente secondo le tue richieste.

se sei interessato a più conoscenze sul concetto. Puoi passare oltre.

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
16
Must Keem J

Ecco il codice per reindirizzare ad un'altra pagina con un timeout di 10 secondi.

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

Puoi farlo anche in questo modo, facendo clic su un pulsante utilizzando location.assign:

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

Puoi usarlo come nel seguente codice dove getRequestToForwardPage è il mapping della richiesta ( URL ). Puoi anche usare il tuo URL.

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

Questo è per lo stesso contesto dell'applicazione.

Se si desidera utilizzare solo il codice specifico di jquery, il seguente codice può aiutare:

 $(location).attr('href',"http://www.google.com");
 $jq(window).attr("location","http://www.google.com");
 $(location).prop('href',"http://www.google.com"); 
15
Vinay Sharma
<script type="text/javascript">
    if(window.location.href === "http://stackoverflow.com") {      
         window.location.replace("https://www.google.co.in/");
       }
</script>
13
sneha

Puoi reindirizzare la pagina utilizzando i seguenti metodi:

  1. Usando un meta tag nella testa - <meta http-equiv="refresh" content="0;url=http://your-page-url.com" />. Si noti che content="0;... viene utilizzato per dopo quanti secondi è necessario reindirizzare la pagina

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

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

13
SantoshK

Puoi usare:

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

Il metodo replace() non salva la pagina di origine nella cronologia della sessione, quindi l'utente non può tornare indietro usando il pulsante Indietro e di nuovo reindirizzato. NOTA: il pulsante Indietro del browser verrà disattivato in questo caso.

Tuttavia, se vuoi un effetto come fare clic su un link, dovresti cercare:

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

In questo caso, il pulsante Indietro del browser sarà attivo.

13
madhur

Uso:

function redirect(a) {
    location = a
}

E chiamalo con: redirect([url]);

Non c'è bisogno di href dopo location, come è implicito.

12
cascading-style

È possibile scrivere l'Url.Action per l'evento click del pulsante nella sezione script come segue.

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

Applicazione pagina singola , all'interno dello stesso percorso dell'applicazione

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

Angular 4

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

Ho solo aggiunto un altro modo:

Per reindirizzare per qualsiasi pagina/link specifici del tuo sito a un'altra pagina, aggiungi questa riga di codice:

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

Per un esempio di vita reale,

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

Utilizzando questo semplice codice, è possibile reindirizzare il sito completo o una singola pagina.

11

Questo è molto facile da implementare. Puoi usare:

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

Questo ricorderà la cronologia della pagina precedente. Quindi si può tornare indietro facendo clic sul pulsante Indietro del browser.

O:

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

Questo metodo non ricorda la cronologia della pagina precedente. In questo caso, il pulsante Indietro diventa disabilitato.

11

Se preferisci usare pure javascript mi ​​sono reso conto che l'uso di document.location.href = "https://example.com" o window.location.href = "https://example.com" causa problemi di compatibilità in Firefox. Invece cerca di usare:

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

Nel mio caso ha risolto il problema. In bocca al lupo!

Uso già la funzione redirect () di JavaScript. Sta funzionando.

<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>
10
user1012506
  1. location.assign ():

    Per assegnare un percorso percorso passando un percorso in esso .. Assegna ti darà una cronologia anche dopo che il percorso è stato assegnato.

    Metodo di utilizzo: valore deve essere passato in esso.

    Ad esempio: location.assign("http://google.com")

     Enter image description here

  2. location.href

    È possibile definire un percorso in esso ... E si reindirizzerà in un determinato percorso una volta impostato e manterrà la cronologia ...

    Metodo di utilizzo: value dovrebbe essere assegnato ad esso.

    Ad esempio: location.href = "http://google.com"

  3. location.replace ():

    Aiuterà a sostituire un percorso se non vuoi mantenere la cronologia. Non ti darà una cronologia una volta che sostituirai il suo percorso.

    Metodo di utilizzo: value dovrebbe essere passato in esso.

    Ad esempio: location.replace("http://google.com")

     Enter image description here


assign() e href sono simili, ed entrambi possono contenere la cronologia. assign funzionerà passando un valore e href funziona assegnando.

Puoi realizzarlo usando JavaScript stesso senza usare jQuery assegnando,

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

Puoi ottenere risultati simili usando jQuery come di seguito. Farà esattamente lo stesso come sopra,

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

Puoi facilmente capire la differenza tra entrambi ...

Ecco l'oggetto Location,

 Location API from chrome

10
Silent Spectator

Se vuoi reindirizzare a un percorso all'interno della stessa app semplicemente

window.location.pathname = '/examplepath'

sarebbe la strada da percorrere.

9
RuNpiXelruN

L'utilizzo di location.replace() ti reindirizzerà ma senza salvare la cronologia della pagina precedente. Questo è meglio da usare quando viene inviato un modulo. Ma quando vuoi mantenere la tua cronologia devi usare location.href=//path

Esempi:

// 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);
}
8
Andrei Todorut

Tutto il modo per fare un reindirizzamento dal lato client:

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

Reindirizzare l'utente usando jQuery/JavaScript

Utilizzando l'oggetto posizione in jQuery o JavaScript, possiamo reindirizzare l'utente a un'altra pagina web.

In jQuery

Il codice per reindirizzare l'utente da una pagina all'altra è:

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

In JavaScript

Il codice per reindirizzare l'utente da una pagina all'altra è:

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

O

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

Questo è il modo in cui lo uso.

   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

Nella mia esperienza lavorativa, JavaScript è molto meglio reindirizzare.

Dipende da come si desidera cambiare la posizione. Se vuoi registrare il tuo sito web nella cronologia degli utenti, usa window.location.href='ur website';. Altrimenti per farlo senza accedere alla cronologia, usa window.location.replace("your website");.

4
Omkaar.K