Leiten Sie die Website nach einer bestimmten Zeit um

135

Was muss ich tun, um eine Funktion auf einer Website zu haben, auf der angegeben ist, dass Sie in etwa 3 Sekunden zur Website weitergeleitet werden?

codedude
quelle
Ich bin nur neugierig, warum willst du das jemals tun? Jedes Mal, wenn ich eine solche Seite besuchte, wäre ich lieber in 0 Sekunden weitergeleitet worden.
allesklar
@allesklar Entschuldigung für die späte Antwort. Ich bin in der Entwicklung einer Website und wollte wissen, ob es einfacher ist, vom Code-Editor zum Webbrowser zu wechseln, ohne jedes Mal auf "Aktualisieren" zu klicken.
Codedude
Mit diesem JS-Umleitungsgenerator können Sie auf einfache Weise verzögerte Umleitungs-Snippets erstellen. Es hat eine Noscript- und SEO-Unterstützung sowie einen IE 8 - und niedrigeren - Fix, um den http-Referer zu übergeben!
Patartics Milán
1
@allesklar ein Beispiel, um dies zu verwenden. Wenn Sie Ihre Domain ändern und möchten, dass alle im ersten Monat auf die neue Domain umgeleitet werden (wenn Sie sie jedoch darüber informieren, wird die alte Domain nach etwa einem Monat entfernt). Denn selbst wenn Sie senden und eine E-Mail senden, gibt es immer jemanden, der die alte Domain vergisst und auf sie zugreift.
Patricia

Antworten:

209
<meta http-equiv="refresh" content="3;url=http://www.google.com/" />
Darin Dimitrov
quelle
Oder leiten Sie einfach zum Stammverzeichnis um, wenn Sie mehrere Websites mit <meta http-equiv = "refresh" content = "3; url = /" />
DJSampat
1
Das W3C empfiehlt, dieses Tag nicht zu verwenden: w3.org/TR/WCAG10-HTML-TECHS/#meta-element
huseyin39
69

Sie suchen wahrscheinlich nach dem 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>

Beachten Sie, dass die Verwendung von meta refreshheutzutage veraltet und verpönt ist, aber manchmal die einzig praktikable Option ist (z. B. wenn Sie keine serverseitige Generierung von HTTP-Umleitungsheadern durchführen können und / oder Nicht-JavaScript-Clients usw. Unterstützen müssen ).

LukeH
quelle
52

Wenn Sie mehr Kontrolle wünschen, können Sie Javascript verwenden, anstatt das Meta-Tag zu verwenden. Dies würde es Ihnen ermöglichen, eine Art Bild zu haben, z. B. einen Countdown.

Hier ist ein sehr grundlegender Ansatz mit 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>

mbrevoort
quelle
Dies ist der richtige Weg, wenn der Text vor der Umleitung dynamisch auf 0 heruntergezählt werden soll. Verwenden Sie einen 1-Sekunden-Timer, bei dem die Timer-Funktion den HTML-Text aktualisiert, und starten Sie dann einen neuen 1-Sekunden-Timer, bis 3 Sekunden verstrichen sind. Führen Sie dann die Umleitung durch.
Remy Lebeau
19

Hier ist ein vollständiges (und dennoch einfaches) Beispiel für die Umleitung nach X Sekunden beim Aktualisieren eines Zählers 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>

Der anfängliche Inhalt des counterDiv ist die Anzahl der Sekunden, die gewartet werden muss.

noamtm
quelle
Das hat nicht funktioniert , bis ich ersetzt location.href="https://example.com";mitwindow.location='https://example.com'
NateH06
1
Könntewindow.location.replace("http://example.com"); aus den hier diskutierten Gründen besser zu verwenden sein : stackoverflow.com/a/506004 Die Änderung würde diese Antwort allgemeiner machen.
Psyche
10

Der einfachste Weg ist die Verwendung eines HTML-META-Tags wie folgt:

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

Wikipedia

Ehsan
quelle
4

Platzieren Sie den folgenden HTML-Umleitungscode zwischen den Tags und Ihres HTML-Codes.

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

Der obige HTML-Weiterleitungscode leitet Ihre Besucher sofort auf eine andere Webseite weiter. Der Inhalt = "3; kann auf die Anzahl der Sekunden geändert werden, die der Browser vor der Weiterleitung warten soll. 4, 5, 8, 10 oder 15 Sekunden usw.

Muhammad Saqib
quelle
1

Verwenden Sie diesen einfachen Javascript-Code, um die Seite in einem bestimmten Zeitintervall auf eine andere Seite umzuleiten ...

Bitte fügen Sie diesen Code zu Ihrer Website-Seite hinzu, die Sie umleiten möchten:

<script type="text/javascript">
(function(){
   setTimeout(function(){
     window.location="http://brightwaay.com/";
   },3000); /* 1000 = 1 second*/
})();
</script>
Sunny SM
quelle
<meta http-equiv="refresh" content="3;url=http://example.com/" />ist eine bessere Option, da es einfacher ist und ohne JavaScript-Unterstützung funktioniert.
Edward
Sie haben Recht, Bruder ... aber es hängt von der Situation ab. Manchmal müssen wir auf ein bestimmtes Ereignis umleiten, damit JS die beste Option ist.
Sunny SM
Ich verstehe, was du meinst, "Sunny SM". Obwohl Meta-Tags fast immer verwendet werden sollten, kann es bestimmte Szenarien wie Ihre geben, in denen JavaScript die einzige Option ist.
Edward