window.location 사용 방법을 알고 있습니다. 문제는, (적어도 FF로) 역사에서 온 페이지를 지우는 것입니다. 예를 들어, 페이지 A에 있습니다. B와 window.location으로 이동하여 C로 보냅니다. C 페이지에서 B를 클릭하지 않으면 A에서 끝납니다.JavaScript : 히스토리의 현재 페이지 (window.location 제외)를 대체하지 않고 새 URL로 이동
기록에서 현재 페이지를 지우지 않고 다른 페이지로 이동하는 다른 방법?
편집 : 방화범이 끌려서 코드를 실행하면 이런 일이 발생하지 않습니다.
는 여기에 문제를 보여줍니다 (는 실제 코드 아니라, 그래 내가 코드가 추한 것을 알고) 슈퍼 간단한 페이지입니다 :
<html>
<head><script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"> </script>
<body>
<div class="foo"></div>
<a href="javascript:$('.foo').html('<scri'+'pt type="text/javascript">window.location = "c.html"</s'+'cript>');">b</a>
EDIT2가 : jQuery를 문제이며 setTimeout
는 대답이다. 다른 누군가가이 이상한 엣지 케이스에 빠져들 경우를 대비해 솔루션을 추가했습니다.
EDIT3 :이 예제는 테스트하기 쉽도록 단순화되었습니다. 실제 상황에서는 클릭 핸들러가 HTML을 반환하는 Ajax 호출을 작성하므로 window.location = whatever 만 작성하여 전체를 단순화 할 수는 없습니다. 이 코드는 HTML에 내장 된 서버에서 가져온 것입니다.
사용중인 코드를 게시하면 도움이됩니다. 'window.location = url' 또는'window.location.replace (url)' –
나는 둘 다 시도했다. 같은 결과. – noah
왜이 커뮤니티는 위키입니까? –