일정 시간이 지나면 웹 사이트 리디렉션


135

3 초 정도 지나면 사용자를 사이트로 리디렉션 할 수있는 웹 사이트에서 기능을 수행하려면 어떻게해야합니까?



그냥 궁금해서 왜 그렇게하길 원하니? 그런 페이지를 방문 할 때마다 0 초 만에 지시되었습니다.
allesklar

@allesklar 늦은 답변에 대해 죄송합니다. 사이트를 개발 중이며 매번 새로 고침을 누르지 않고 코드 편집기에서 웹 브라우저로 쉽게 전환 할 수 있는지 확인하고 싶었습니다.
codedude

JS 리디렉션 생성기는 지연된 리디렉션 스 니펫을 쉽게 만들 수 있도록 도와줍니다. 그것은 noscript와 seo 지원을 가지고 있으며, http referer를 전달하기 위해 IE 8 이하 수정이 있습니다!
Patartics Milán

1
@allesklar 이것을 사용하는 한 가지 예입니다. 도메인을 변경하고 첫 달에 모든 사람이 새 도메인으로 리디렉션되도록하려는 경우 (한 달 정도 지나면 이전 도메인이 제거됨을 알립니다). 이메일을 보내거나 이메일을 보내더라도 이전 도메인을 잊어 버린 사람은 항상 있습니다.
patricia

답변:



69

아마 meta refresh태그를 찾고있을 것입니다 :

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

meta refresh요즘에는 사용 이 더 이상 사용되지 않고 찌그러 지지만 때로는 유일하게 실행 가능한 옵션입니다 (예 : 서버 측 HTTP 리디렉션 헤더 생성을 수행 할 수 없거나 Javascript가 아닌 클라이언트 등을 지원해야하는 경우) ).


52

더 큰 제어를 원하면 메타 태그를 사용하는 대신 자바 스크립트를 사용할 수 있습니다. 이를 통해 카운트 다운과 같은 시각적 정보를 얻을 수 있습니다.

다음은 사용하는 매우 기본적인 접근 방식입니다. 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>


리디렉션 전에 텍스트를 0으로 동적으로 카운트 다운하려는 경우이 방법입니다. 1 초 타이머를 사용하십시오. 여기서 타이머 기능은 HTML 텍스트를 업데이트 한 다음 3 초가 경과 할 때까지 새로운 1 초 타이머를 시작한 다음 리디렉션을 수행하십시오.
Remy Lebeau

19

다음은 카운터 div를 업데이트하면서 X 초 후에 리디렉션하는 완전한 (아직 간단한) 예제입니다.

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

counterdiv 의 초기 내용은 대기 시간 (초)입니다.


이것은 다음 location.href="https://example.com";과 같이 교체 될 때까지 작동하지 않았습니다.window.location='https://example.com'
NateH06

1
사용하는 것이 좋습니다 수 있습니다 window.location.replace("http://example.com");이유가 여기에 설명을 위해 : stackoverflow.com/a/506004 변화는이 답변 더 일반성을 제공한다.
Psyche

10

가장 간단한 방법은 다음과 같이 HTML META 태그를 사용하는 것입니다.

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

위키 백과


4

HTML 코드의 태그와 태그 사이에 다음 HTML 리디렉션 코드를 배치하십시오.

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

위의 HTML 리디렉션 코드는 방문자를 다른 웹 페이지로 즉시 리디렉션합니다. content = "3;은 브라우저가 리디렉션하기 전에 대기 할 시간 (초, 4, 5, 8, 10 또는 15 초 등)으로 변경 될 수 있습니다.


1

이 간단한 자바 스크립트 코드를 사용하여 특정 시간 간격을 사용하여 페이지를 다른 페이지로 리디렉션하십시오 ...

이 코드를 웹 사이트 페이지에 추가하십시오.

<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/" />JavaScript 지원없이 더 간단하고 작동하므로 더 나은 옵션입니다.
Edward

당신은 옳은 ...하지만 상황에 따라 다릅니다. 언젠가 우리는 그 JS에 대한 특정 이벤트를 리디렉션해야합니다.
Sunny SM

"Sunny SM"의 의미를 알 수 있습니다. 메타 태그는 거의 항상 사용해야하지만 JavaScript가 유일한 옵션 인 특정 시나리오가있을 수 있습니다.
Edward
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.