Come reindirizzare a un'altra pagina Web?


7723

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


147
Continuo a vedere sia window.location = url; e window.location.href = url; Come sono differenti? Sono loro? A proposito, non sapevo di window.location.replace (url). Bello.
David M. Miller,

100
window.locationè lo stesso di window.location.href, in termini di comportamento. window.locationrestituisce un oggetto. Se .hrefnon è impostato, per window.locationimpostazione predefinita cambia il parametro .href. Concludere: utilizzare uno dei due va bene.
Raptor

10
var url = "nome del sito Web" $ (posizione) .attr ('href', url);
Mad Scientist,

31
@MadScientist Questo è un modo all'indietro per farlo. L'oggetto location non è un elemento HTML e l'utilizzo dell'oggetto jquery per impostarlo sembra sbagliato. Perché dovresti usarlo quando il semplice codice JS è così semplice?
Juan Mendes,

1
Perché vuoi reindirizzare? Il modulo di accesso non deve essere inviato? E anche se non c'è logica nella pagina di destinazione, sarai comunque in grado di inviare il modulo a un'altra pagina.
Dimt

Risposte:


14810

Non si reindirizza semplicemente usando jQuery

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

window.location.replace(...)è meglio dell'uso 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 a pulsante indietro senza fine.

Se si desidera simulare qualcuno facendo clic su un collegamento, utilizzare location.href

Se si desidera simulare un reindirizzamento HTTP, utilizzare location.replace

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

// Another method for doing redirecting with JavaScript is this:
window.location = "https://stackoverflow.com";

78
in caso di pulsante di invio aggiungere return false; anche all'interno della tua funzione
Abhi

134
La domanda riguarda specificamente javascript, ma potrebbe valere la pena notare che un meta refresh può essere usato come failback nel caso in cui l'utente abbia javascript disabilitato
Hoppe

22
@ NicolòMartini If (IE) document.write ("");
Jeff Noel,

48
Se stai già utilizzando jQuery, basta usare $(location).attr('href',url);. window.location.hrefsembra avere un comportamento incostante in alcuni browser, infatti, non funziona nella mia versione di Firefox. Ho sentito dire che l'impostazione window.locationnon funziona direttamente nelle versioni di IE.
Noz,

8
"è meglio" dovrebbe essere rimosso. Come affermato più avanti nella risposta, la soluzione migliore è situazionale. OP non chiede "come posso emulare un reindirizzamento HTTP con Javascript ..."
MadMaardigan

1684

ATTENZIONE: questa risposta è stata semplicemente fornita come possibile soluzione; ovviamente non è la soluzione migliore, in quanto richiede jQuery. Preferisci invece la soluzione JavaScript pura.

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

63
Questa è quella risposta letterale alla domanda. Se stai già utilizzando Jquery e quindi l'hai già caricato, sarà più efficiente la larghezza di banda e ovviamente più chiaro usare il collegamento
barrymac

27
Ancora più importante, c'è un modo per farlo con jQuery che viene estratto? Questo è solo un wrapper per window.location.href = url; Ma se jQuery avesse qualche funzione che, se window.location.href = url; non funzionerà nell'ambiente attuale (browser, sistema operativo, ecc.) jQuery core potrebbe compensare?
Chris,

271
Forzare jQuery nell'equazione in questo modo è semplicemente ridicolo e inutile, soprattutto perché window.locationnon è un elemento e quindi non ha attributi.
Tim Down

10
Dubito in qualche modo che .attr().setAttribute()
funzioni

156
@deltaray Questo non è un altro modo per reindirizzare, come detto sopra, è un involucro insignificante attorno all'oggetto location, che non è nemmeno un elemento! Questo mi ricorda i.stack.imgur.com/ssRUr.gif
JCM

676

Modo JavaScript "vaniglia" standard per reindirizzare una pagina

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

O più semplicemente: (poiché windowè globale)

location.href = 'newPage.html';

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

(Altrimenti ignora quest'ultima parte)


La sezione seguente è per coloro che usano HTTP_REFERERcome una delle molte misure di sicurezza (sebbene non sia una grande misura di protezione). Se si utilizza Internet Explorer 8 o versioni precedenti, queste variabili vanno perse quando si utilizza qualsiasi forma di reindirizzamento delle pagine JavaScript (location.href, ecc.).

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

Testare HTTP_REFERER(incollare URL, sessione, ecc.) Può aiutare a capire 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 tra browser (fallback su window.location.href per Internet Explorer 9+ e tutti gli altri browser)

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

60
Nota a piè di pagina: il controllo del referrer come misura di sicurezza è una pessima soluzione. duckduckgo.com/?q=referrer+spoofing
droope

Se l'URL della sessione GET HTTP è presente nell'URL del referrer, può essere utilizzato per verificarne la validità rispetto alla sessione.
Andrew Fox,

@mcpDESIGNS sei sicuro di aver provato ad usare location.assign? Uso la mia app con IE8 e non perdo l' HTTP_REFERERintestazione.
Buzinas,

Almeno nel 2012 non funzionava, forse più tardi le patch di IE8 l'hanno risolto - è bello sentirlo però!
Mark Pieszak - Trilon.io,

1
La tua menzione di HTTP_REFERER mi ha aiutato a capire il problema che sto riscontrando con window.open e ho trovato una soluzione qui: stackoverflow.com/questions/7580613/… . A proposito, sto riscontrando il problema in IE11!
Dov Miller,

427

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

8
window.navigateè solo vecchio IE (Firefox / Chrome non lo supportano). Se si desidera enumerare tutte le opzioni, non dimenticare document.location.
Rob W,

document.location = document.referrer; Si prega di aggiungere anche nell'elenco. Questo non funziona come History.back, ma rende di nuovo la pagina Aggiorna.
Ali Humayun,

.attr () non funzionerà su jQuery 3.0.0. utilizzare invece .val ().
Rivalus,

4
@ LéoLam Ecco perché esiste un motore di ricerca chiamato Google. :-) Puoi cercare ognuno su Google e trovare la differenza. Non vuoi sceglierne uno a caso.
Sono la persona più stupida, il


330

Questo funziona per ogni browser:

window.location.href = 'your_url';

8
Puoi anche farlo document.location.replace(redirectURL)se non vuoi che la prima pagina sia nella cronologia del browser
jazzcat,

298

Sarebbe utile se tu fossi un po 'più descrittivo in quello che stai cercando di fare. Se stai cercando di generare dati paginati, ci sono alcune opzioni su come farlo. Puoi generare collegamenti separati per ogni pagina a cui vuoi essere in grado di 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 è gestita in modo diverso nel codice e con CSS.

Se si desidera che i dati di paging vengano modificati tramite AJAX, è qui che entra in gioco jQuery. Quello che si farebbe è aggiungere un gestore di clic a ciascuno dei tag di ancoraggio corrispondenti a una pagina diversa. Questo gestore di clic invocherebbe 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
    });
});

252

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

Anche l'aggiunta di una sezione noscript con un meta tag di aggiornamento HTML è una buona soluzione. Ti consiglio di usare 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 indugio si presenta così:

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

228

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, stadiazione e produzione.

Puoi esplorare questo oggetto window.location semplicemente inserendo queste parole in Chrome Console o Firebug 's Console.


window.location.replace (window.location.protocol + "//" + window.location.host)
moala

13
ancora più semplice: window.location = '/'
Iftah,

213

JavaScript offre 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. È possibile 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>

inserisci qui la descrizione dell'immagine

  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 proprietario della risorsa. Ad esempio, www.stackoverflow.com. Un server fornisce servizi utilizzando il nome dell'host.

  3. porta: un numero di porta utilizzato per riconoscere un processo specifico a cui inoltrare un messaggio Internet o di altra rete quando arriva a un server.

  4. nome 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 path e fornisce una stringa di informazioni che la risorsa può utilizzare per qualche scopo (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 hash (#).

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

  1. hash imposta o restituisce la parte di ancoraggio di un URL.
  2. ospite imposta o restituisce il nome host e la porta di un URL.
  3. Nome host imposta o restituisce il nome host di un URL.
  4. href imposta o restituisce l'intero URL.
  5. percorso imposta o restituisce il nome percorso di un URL.
  6. porta imposta o restituisce il numero di porta utilizzato dal server per un URL.
  7. protocollo imposta o restituisce il protocollo di un URL.
  8. ricerca: imposta o restituisce la parte della query di un URL

Ora Se vuoi cambiare una pagina o reindirizzare l'utente su qualche altra pagina puoi usare il href proprietà dell'oggetto Location in questo modo

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

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

Location Object ha anche questi tre metodi

  1. assegnare() : carica un nuovo documento.
  2. ricaricare() - Ricarica il documento corrente.
  3. sostituire() - Sostituisce il documento corrente con uno nuovo

Puoi usare assegnare () e sostituire i metodi anche per reindirizzare ad altre pagine come queste

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

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

In che modo differenzia () e sostituisci () - La differenza tra il metodo replace () e il metodo () (), è che sostituisce () rimuove l'URL del documento corrente dalla cronologia del documento, significa che non è possibile utilizzare il pulsante "indietro" per tornare al documento originale. Quindi usa il metodo assegnato () se vuoi caricare un nuovo documento e vuoi dare la possibilità di tornare al documento originale.

È possibile modificare la proprietà href dell'oggetto location utilizzando anche jQuery in questo modo

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

E quindi puoi reindirizzare l'utente a qualche altro URL.


203

Fondamentalmente jQuery è solo un framework JavaScript e per fare alcune cose come il reindirizzamento in questo caso, puoi semplicemente usare JavaScript puro, quindi in quel caso hai 3 opzioni usando JavaScript vanilla:

1) Utilizzando posizione sostituire , questo sostituirà la storia attuale della pagina, significa che non è possibile utilizzare il posteriore pulsante per tornare alla pagina originale.

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

2) Usando l' assegnazione della posizione , questo manterrà la cronologia per te e con l'uso del pulsante Indietro, puoi tornare alla pagina originale:

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

3) Consiglio di usare uno di quei modi precedenti, ma questa potrebbe essere la terza opzione usando JavaScript puro:

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

Puoi anche scrivere una funzione in jQuery per gestirla, ma non è raccomandato in quanto è solo una riga pura funzione JavaScript, inoltre puoi utilizzare tutte le funzioni sopra senza finestra se sei già nell'ambito della finestra, ad esempio window.location.replace("http://stackoverflow.com");potrebbe esserelocation.replace("http://stackoverflow.com");

Inoltre li mostro tutti sull'immagine qui sotto:

location.replace location.assign


1
Mi consiglia di utilizzare assign()più di href=troppo in quanto quest'ultimo non ha funzionato correttamente per me in alcuni casi.
Marsze,


169

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

Una citazione da Jquery.com:

Sebbene jQuery possa funzionare senza problemi importanti nelle versioni precedenti del browser, non testiamo attivamente jQuery in essi e generalmente non correggiamo i 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 non elaborato funziona in tutti i browser e è stata standard per molto tempo, quindi non è necessaria alcuna libreria per il supporto tra browser.

Questa pagina reindirizzerà a Google dopo 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>

Le 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 Sostituisci, il pulsante Indietro non tornerà alla pagina di reindirizzamento, come se non fosse mai stato nella cronologia. Se si desidera che l'utente sia in grado di tornare alla pagina di reindirizzamento, utilizzare window.location.hrefowindow.location.assign . Se usi un'opzione che consente all'utente di tornare alla pagina di reindirizzamento, ricorda che quando accederai alla pagina di reindirizzamento ti reindirizzerà indietro. Quindi prendilo in considerazione quando scegli un'opzione per il tuo reindirizzamento. In condizioni in cui la pagina viene reindirizzata solo quando un'azione viene eseguita dall'utente, allora avere la pagina nella cronologia del pulsante Indietro andrà bene. Ma se la pagina reindirizza automaticamente, è necessario utilizzare Sostituisci in modo che l'utente possa utilizzare il pulsante Indietro senza essere costretto a tornare alla pagina inviata dal reindirizzamento.

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

Aggiornamento META

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

Posizione META

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

Dirottamento di base

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

Molti altri metodi per reindirizzare il tuo client ignaro su una pagina che potrebbe non desiderare andare possono essere trovati in questa pagina (nessuno di questi dipende da jQuery):

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

Vorrei anche sottolineare che alle persone non piace essere reindirizzate in modo casuale. Reindirizzare le persone solo quando assolutamente necessario. Se inizi a reindirizzare le persone in modo casuale, queste non torneranno mai più sul tuo sito.

Il prossimo paragrafo è ipotetico:

Potresti anche essere segnalato come sito dannoso. Se ciò accade, quando le persone fanno clic su un collegamento al tuo sito, il browser degli utenti potrebbe avvisarli che il tuo sito è dannoso. Ciò che può anche accadere è che i motori di ricerca potrebbero iniziare a eliminare la tua valutazione se le persone segnalano una brutta esperienza sul tuo sito.

Consulta le Linee guida 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 caccia 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 si combinano insieme i due esempi di pagine, si avrebbe un ciclo di reindirizzamento infantile che garantirà che l'utente non vorrà mai più utilizzare il proprio sito.


5
Mi rivolgo alla sua richiesta di jQuery dicendo che non è necessario. JQuery ha molte utili scorciatoie utili per JavaScript ma non sono necessarie scorciatoie per i reindirizzamenti. JQuery è solo JavaScript. Niente di più. Il modo normale di chiamare un reindirizzamento funzionerà con le sue funzioni usando jQuery.
Patrick W. McMahon,

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

145

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

JQuery è probabilmente un'idea migliore in quanto potrebbe sottrarre future modifiche / deprezzamenti del browser
Epirocks,

@Epirocks Se c'era un'API in jQuery progettata per questo, questo potrebbe essere un motivo valido (anche se è dubbio che questa API cambierà mai), ma l'esempio qui è solo l'uso improprio di una funzione di jQuery in cui è possibile avvolgere oggetti non DOM e alcuni metodi continueranno a funzionare.
1j01

Il fatto che "alcuni metodi funzioneranno ancora" è esattamente ciò che intendo per astrazione. Sì, puoi farlo senza JQuery, ma puoi fare qualsiasi cosa senza JQuery, oltre al punto.
Epirocks,

144

Funziona con jQuery:

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

Solo perché funziona, non significa che dovresti farlo. Questa è window.location
un'inutile indicazione

89

# Reindirizzamento della pagina HTML tramite 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 come window.location = "www.google.co.in";.


"Utilizzo di jQuery" non è preciso. E l'esempio dell'utilizzo di un URL completo non funzionerà, poiché non si tratta di un URL completo. Non esiste un protocollo, quindi verrà interpretato come un URL relativo.
1o gennaio

80

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

80

Domanda originale: "Come reindirizzare utilizzando jQuery?", Quindi la risposta implementa jQuery >> Caso di utilizzo gratuito.


Per reindirizzare 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 ti permette di selezionare facilmente elementi da una pagina web. Puoi trovare tutto ciò che desideri su una pagina e quindi utilizzare jQuery per aggiungere effetti speciali, reagire alle azioni dell'utente o mostrare e nascondere il contenuto all'interno o all'esterno dell'elemento che hai selezionato. Tutte queste attività iniziano con il saper 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 con 10000 righe di codice. Con jQuery è possibile connettersi a questo codice con solo una linea o due.


Intestazione Javascript: è possibile invece fare il tempo in secondi?
PythonMaster202 del

79

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

Devi solo 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 supponi di aver appena inserito questo frammento in un redirect/index.htmlfile 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 .

Link alla documentazione

Ed è così che crei una pagina di reindirizzamento semplice con JavaScript

Modificare:

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

Esempio:

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

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

Quindi, se questo soddisfa le 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;

74

Sulla tua funzione clic, basta aggiungere:

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


57

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


52

Prima scrivi correttamente. Si desidera navigare all'interno di un'applicazione per un altro collegamento dall'applicazione per un altro collegamento. Ecco il codice:

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

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


52

Puoi reindirizzare in jQuery in questo modo:

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

45

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

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

45

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 ha richiesto una soluzione "usando jQuery" che in questo caso implica forzarla in qualche modo nell'equazione.

Apparentemente Ferrybig ha bisogno della spiegazione dello scherzo (sto ancora scherzando, sono sicuro che ci sono opzioni limitate nel modulo di revisione), quindi senza ulteriori indugi:

Altre risposte stanno usando jQuery attr()su locationowindow inutilmente oggetti .

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

La funzione è chiamata jQueryCodeanche se non c'è nulla di jQuery e la chiamata di una funzionesomethingCode è semplicemente orribile, specialmente quando qualcosa non è nemmeno una lingua.

"85 byte" è un riferimento a Code Golf. Ovviamente il golf non è qualcosa che si dovrebbe fare al di fuori del code golf, e inoltre questa risposta non è chiaramente giocata a golf.

Fondamentalmente, rabbia.


45

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

1
C'è un motivo per memorizzare l'URL in jQuery come variabile, ma non con Vanilla?
ESR,

43

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

41

Ecco un reindirizzamento ritardato. 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>

5
meglio farlo: setTimeout (function () {window.location.href = " google.com "}, ritardo);
dikkini,

39

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 visitata prima di essere reindirizzato nella cronologia delle ricerche. Tuttavia, se desideri solo aprire una scheda con JavaScript, puoi utilizzare una delle opzioni precedenti. 1

EDIT: il windowprefisso è facoltativo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.