2008-10-14 6 views

답변

84
// use this to avoid redirects when a user clicks "back" in their browser 
window.location.replace('http://somewhereelse.com'); 

// use this to redirect, a back button call will trigger the redirection again 
window.location.href = "http://somewhereelse.com"; 

// given for completeness, essentially an alias to window.location.href 
window.location = "http://somewhereelse.com"; 

편집가 : SO 떠나 더 나은 대답을 게시 한 사용자처럼 보이는, 내가 여기에 자신의 답변을 통합했습니다.

4

JavaScript를 사용하여 페이지를 리디렉션 할 때 기억해야 할 중요한 점 중 하나는 항상 자바 스크립트 이외의 리디렉션도 제공한다는 것입니다. 예를 들어, <META> 태그와 같은 링크를 사용하면 더 좋은 결과를 얻을 수 있습니다. <meta http-equiv="refresh" content="2;url=http://example.com">

24

대부분의 조언이 있습니까? 그것을하지 말라. HTTP is far better suited to the job은 (검색 엔진이이를 따르고, 영구적인지 아닌지, 더 빠르다는 등을 기술 할 수 있습니다.)

실패 함 & hellip;

당신은 즉시 리디렉션하려면 다음

window.location.replace('http://example.com/');

이 브라우저의 역사에 새로운 URI와 현재의 URI를 대체 할, 그래서 뒤로 버튼이 즉시 던졌습니다 페이지에 사용자가 착륙하지 않습니다를 다시 앞으로.

당신이 정말로 리디렉션하지만, 이벤트에 대한 응답으로 어딘가에 사용자를 보낼하지 않으려면

:

window.location.href = 'http://example.com/';

비 자바 스크립트 대체를해야합니다. 일반적으로 링크가 가장 좋은 옵션이지만 상황에 따라 다릅니다.

시간이 지연된 리디렉션은 훨씬 더 나쁜 아이디어입니다. 그 (것)들을 사용하는 유일한 이유는 당신이 사용자에게 메시지를 표시하고 싶은 경우와 사용자가 다른 속도로 사물을 읽는 것입니다. 메시지가 표시 할 정도로 중요하면 사용자가 메시지를 읽고 다음 페이지로 연결되는 링크를 클릭 할 때까지 화면에서 나가는 것이 중요합니다.

4

요즘 가장 권장되는 방법은 not to do javascript (또는 메타) 리디렉션이라고 생각합니다. 너 정말 필요해? 대신 리디렉션 HTTP 헤더를 사용할 수 있습니까?

W3C의 웹 콘텐츠 접근성 지침 (7.4) 또한 웹 브라우저는 사용자가 새로 고침 속도

0

<script type="text/javascript"> 
 
function Redirect(){ 
 
    window.location.href = ("https://example.com"); 
 
} 
 
document.write("Please wait you will be redirected in 10sec"); 
 
setTimeout('Redirect(), 10000); 
 
</script>

을 비활성화하거나 제어 할 수없는 대부분의 이후 자동 새로 고침 페이지의 생성을 억제
0

<!-- begin snippet: js hide: false console: true babel: false -->

<script type="text/javascript"> 
function Redirect(){ 
    window.location.href = ("https://example.com"); 
} 
document.write("Please wait you will be redirected in 10sec"); 
setTimeout('Redirect(), 10000); 
</script> 
관련 문제