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