Qual è il modo migliore per reindirizzare automaticamente qualcuno a un'altra pagina web?

StackOverflow https://stackoverflow.com/questions/200337

  •  03-07-2019
  •  | 
  •  

Domanda

Non ho mai imparato JavaScript, ma immagino che questo sia un problema abbastanza semplice. Volevo solo sapere quale metodo è più consigliato in questi giorni.

È stato utile?

Soluzione

// use this to avoid redirects when a user clicks "back" in their browser
window.location.replace('http://somewhereelse.com');

// use this to redirect, a back button call will trigger the redirection again
window.location.href = "http://somewhereelse.com";

// given for completeness, essentially an alias to window.location.href
window.location = "http://somewhereelse.com";

modifica : sembra che l'utente che ha pubblicato la risposta migliore abbia lasciato SO, ho consolidato le sue risposte qui.

Altri suggerimenti

Più consigliato? Per non farlo. HTTP è lontano più adatto al lavoro di JavaScript ( i motori di ricerca li seguono, puoi dire se è permanente o no, sono più veloci, ecc.)

In caso contrario & # 8230;

Se desideri un reindirizzamento immediato:

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

Questo sostituirà l'URI corrente con il nuovo URI nella cronologia del browser, quindi il pulsante Indietro non farà atterrare l'utente su una pagina che li rimanda immediatamente in avanti.

Se non vuoi davvero reindirizzare, ma vuoi inviare l'utente da qualche parte in risposta a un evento:

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

Ricorda di avere un fallback non JavaScript. Un collegamento è di solito l'opzione migliore, ma dipende dal contesto.

I reindirizzamenti ritardati sono un'idea ancora peggiore. L'unico motivo per usarli è se vuoi mostrare un messaggio all'utente - e gli utenti leggono le cose a velocità diverse (e le fanno sedere in un'altra scheda mentre fanno qualcos'altro). Se il messaggio è abbastanza importante da mostrare, dovrebbe essere abbastanza importante lasciare sullo schermo fino a quando l'utente non lo ha letto e fatto clic su un collegamento alla pagina successiva.

Una cosa importante da ricordare quando si reindirizza una pagina utilizzando JavaScript è, fornire sempre anche un reindirizzamento non JavaScript! Un collegamento farebbe, o meglio un <META> tag, ad esempio: <meta http-equiv="refresh" content="2;url=http://example.com">

In questi giorni, penso che il metodo più consigliato sia non fare javascript ( o meta) reindirizzamenti. Ne hai davvero bisogno? Potresti usare invece un'intestazione HTTP di reindirizzamento?

Le Linee guida sull'accessibilità dei contenuti Web del W3C (7.4) scoraggiano anche la creazione di pagine con aggiornamento automatico, poiché la maggior parte dei browser Web non consente all'utente di disabilitare o controllare la frequenza di aggiornamento

Un altro modo per farlo con i file locali è farlo

<script type="text/javascript">
function Redirect(){
  window.location.href = ("https://example.com");
}
document.write("Please wait you will be redirected in 10sec");
setTimeout('Redirect(), 10000);
</script>

<!-- begin snippet: js hide: false console: true babel: false -->

<script type="text/javascript">
function Redirect(){
  window.location.href = ("https://example.com");
}
document.write("Please wait you will be redirected in 10sec");
setTimeout('Redirect(), 10000);
</script>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top