Web sitesini belirli bir süre sonra yönlendirin


135

Bir web sitesinde, 3 saniye içinde siteye yönlendireceğini söyleyen bir işleve sahip olmak için ne yapmam gerekir?



Sadece merak ediyorum, neden bunu yapmak istedin? Böyle bir sayfayı her ziyaret ettiğimde, 0 saniye içinde yönlendirilmeyi tercih ederim.
allesklar

@ allesklar geç cevap verdiğim için üzgünüm. Ben bir site geliştiriyorum ve ben her zaman yenileme vurmadan kod editörü web tarayıcısına geçmek daha kolay olup olmadığını görmek istedim.
kodlama

Bu JS yönlendirme jeneratörü kolayca gecikmeli yönlendirme snippet'leri oluşturmanıza yardımcı olacaktır. Bir noscript ve seo desteği var, ayrıca http referansını geçmek için IE 8 ve daha düşük bir düzeltme var!
Patarics Milán

1
@allesklar bunu kullanmak için bir örnek. Alan adınızı değiştirirseniz ve herkesin ilk ayda yeni alana yönlendirilmesini istiyorsanız (ancak eski alan adının bir ay sonra kaldırılacağını bildirmek). Çünkü gönderip e-posta gönderseniz bile, her zaman eski etki alanını unutan ve ona giden birileri vardır.
patricia

Yanıtlar:



69

Muhtemelen meta refreshetiketi arıyorsunuz :

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

meta refreshBu günlerde kullanımının kullanımdan kaldırıldığını ve kaşlarını çattığını unutmayın , ancak bazen tek geçerli seçenek (örneğin, sunucu tarafı HTTP yönlendirme başlıklarını oluşturamıyorsanız ve / veya JavaScript dışı istemcileri desteklemeniz gerekiyorsa) ).


52

Daha fazla kontrol istiyorsanız meta etiketi kullanmak yerine javascript kullanabilirsiniz. Bu, örneğin bir geri sayım gibi bir görsele sahip olmanızı sağlar.

İşte çok temel bir yaklaşım 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>


Yeniden yönlendirmeden önce metnin dinamik olarak 0'a kadar geri sayılmasını istiyorsanız, bu gitmek için bir yol olacaktır. Zamanlayıcı işlevinin HTML metnini güncellediği 1 saniyelik bir zamanlayıcı kullanın ve 3 saniye geçene kadar 1 saniyelik yeni bir zamanlayıcı başlatın, sonra yönlendirmeyi yapın.
Remy Lebeau

19

Bir sayaç divini güncellerken, X saniye sonra yeniden yönlendirmenin eksiksiz (ancak basit) bir örneği:

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

Div'in ilk içeriği, counterbeklenecek saniye sayısıdır.


Ben yerini kadar bu işe yaramadı location.href="https://example.com";ilewindow.location='https://example.com'
NateH06

1
window.location.replace("http://example.com");Burada tartışılan nedenlerle kullanmak daha iyi olabilir : stackoverflow.com/a/506004 Değişiklik bu cevaba daha genel bir yaklaşım sağlayacaktır.
Psyche

10

En basit yol şu şekilde HTML META etiketini kullanmaktır:

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

Vikipedi


4

Aşağıdaki HTML yönlendirme kodunu HTML kodunuzun ve etiketlerinin arasına yerleştirin.

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

Yukarıdaki HTML yönlendirme kodu, ziyaretçilerinizi anında başka bir web sayfasına yönlendirecektir. Content = "3; tarayıcının yeniden yönlendirmeden önce beklemesini istediğiniz saniye sayısına değiştirilebilir. 4, 5, 8, 10 veya 15 saniye vb.


1

Belirli bir zaman aralığını kullanarak sayfayı başka bir sayfaya yönlendirmek için bu basit javascript kodunu kullanın ...

Lütfen bu kodu yeniden yönlendirmek istediğiniz web sitesi sayfanıza ekleyin:

<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/" />daha basit ve JavaScript desteği olmadan çalıştığı için daha iyi bir seçenektir.
Edward

haklısın kardeşim ... ama duruma bağlı .. bazen JS için belirli bir olaya yeniden yönlendirmemiz gerekiyor en iyi seçenektir.
Güneşli SM

Ne demek istediğini anlıyorum, "Sunny SM". Meta etiketler neredeyse her zaman kullanılmasına rağmen, JavaScript'in tek seçenek olduğu sizinki gibi belirli senaryolar olabilir.
Edward
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.