Reindirizzare il sito Web dopo un certo periodo di tempo


135

Cosa devo fare per avere una funzione su un sito Web in cui si dice che ti reindirizzerà al sito in circa 3 secondi?



Sono solo curioso, perché mai vorresti farlo? Ogni volta che ho visitato tale pagina, avrei preferito essere diretto tra 0 secondi.
allesklar,

@allesklar scusa per la risposta tardiva. Sto sviluppando un sito e volevo vedere se c'era un modo più semplice per passare dall'editor di codice al browser Web senza fare sempre l'aggiornamento.
codedude,

Questo generatore di reindirizzamento JS ti aiuterà a creare facilmente frammenti di reindirizzamento ritardati. Ha un supporto noscript e seo, inoltre ha un IE 8 - e una correzione inferiore - per passare il referer http!
Patartics Milán,

1
@allesklar un esempio per usarlo. Se cambi il tuo dominio e desideri che tutti vengano reindirizzati al nuovo dominio nel primo mese (ma comunicando loro che il vecchio dominio verrà rimosso dopo circa un mese). Perché anche se invii e invii un'email c'è sempre qualcuno che dimentica e passa al vecchio dominio.
Patricia,

Risposte:



69

Probabilmente stai cercando il meta refreshtag :

<html>
    <head>
        <meta http-equiv="refresh" content="3;url=http://www.somewhere.com/" />
    </head>
    <body>
        <h1>Redirecting in 3 seconds...</h1>
    </body>
</html>

Si noti che l'utilizzo di meta refreshè deprecato e disapprovato in questi giorni, ma a volte è l'unica opzione praticabile (ad esempio, se non si è in grado di eseguire la generazione lato server di intestazioni di reindirizzamento HTTP e / o è necessario supportare client non JavaScript, ecc. ).


52

Se si desidera un maggiore controllo, è possibile utilizzare JavaScript anziché utilizzare il meta tag. Ciò ti consentirebbe di avere una visuale di qualche tipo, ad esempio un conto alla rovescia.

Ecco un approccio molto semplice usando setTimeout()

<html>
    <body>
    <p>You will be redirected in 3 seconds</p>
    <script>
        var timer = setTimeout(function() {
            window.location='http://example.com'
        }, 3000);
    </script>
</body>
</html>


Questo sarebbe il modo di procedere se si desidera che il testo esegua il conto alla rovescia dinamico fino a 0 prima del reindirizzamento. Utilizzare un timer da 1 secondo, in cui la funzione timer aggiorna il testo HTML e quindi avvia un nuovo timer da 1 secondo, fino a quando sono trascorsi 3 secondi, quindi eseguire il reindirizzamento.
Remy Lebeau,

19

Ecco un esempio completo (ma semplice) di reindirizzamento dopo X secondi, durante l'aggiornamento di un contatore div:

<html>
<body>
    <div id="counter">5</div>
    <script>
        setInterval(function() {
            var div = document.querySelector("#counter");
            var count = div.textContent * 1 - 1;
            div.textContent = count;
            if (count <= 0) {
                window.location.replace("https://example.com");
            }
        }, 1000);
    </script>
</body>
</html>

Il contenuto iniziale del counterdiv è il numero di secondi di attesa.


Questo non ha funzionato fino a quando non ho sostituito location.href="https://example.com";conwindow.location='https://example.com'
NateH06

1
Potrebbe essere meglio usare window.location.replace("http://example.com");per i motivi discussi qui: stackoverflow.com/a/506004 La modifica fornirebbe questa risposta più generica.
Psiche

10

Il modo più semplice è usare il tag META HTML in questo modo:

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

Wikipedia


4

Inserisci il seguente codice di reindirizzamento HTML tra i tag e del tuo codice HTML.

<meta HTTP-EQUIV="REFRESH" content="3; url=http://www.yourdomain.com/index.html">

Il codice di reindirizzamento HTML sopra riportato reindirizza istantaneamente i tuoi visitatori a un'altra pagina web. Il contenuto = "3; può essere modificato al numero di secondi che il browser deve attendere prima di reindirizzare. 4, 5, 8, 10 o 15 secondi, ecc.


1

Usa questo semplice codice javascript per reindirizzare la pagina a un'altra pagina utilizzando l'intervallo di tempo specifico ...

Aggiungi questo codice nella pagina del tuo sito web, che desideri reindirizzare:

<script type="text/javascript">
(function(){
   setTimeout(function(){
     window.location="http://brightwaay.com/";
   },3000); /* 1000 = 1 second*/
})();
</script>

<meta http-equiv="refresh" content="3;url=http://example.com/" />è un'opzione migliore in quanto è più semplice e funziona senza il supporto JavaScript.
Edward,

hai ragione fratello ... ma dipende dalla situazione .. a volte dobbiamo reindirizzare su eventi specifici per quel JS è l'opzione migliore.
Sunny SM,

Ho capito cosa intendi con "Sunny SM". Sebbene i meta tag debbano essere usati quasi sempre, potrebbero esserci scenari specifici come il tuo in cui JavaScript sarebbe l'unica opzione.
Edward
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.