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?



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:



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


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>


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.


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


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.


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>

<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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.