페이지를 다시로드하지 않고 URL을 어떻게 수정합니까?
질문
페이지를 다시로드하지 않고 현재 페이지의 URL을 수정할 수있는 방법이 있습니까?
가능한 경우 # 해시 전에 부분에 액세스하고 싶습니다.
도메인 이후 부분을 변경하면됩니다. 따라서 도메인 간 정책을 위반하는 것과 같지 않습니다.
window.location.href = "www.mysite.com/page2.php"; // Sadly this reloads
답변
이제는 Chrome, Safari, Firefox 4+ 및 Internet Explorer 10PP4 +에서 수행 할 수 있습니다!
자세한 내용은이 질문의 답변을 참조하십시오. 해시없이 새 URL을 사용하여 주소 표시 줄 업데이트 또는 페이지를 다시로드합니다.
예시:
function processAjaxData(response, urlPath){
document.getElementById("content").innerHTML = response.html;
document.title = response.pageTitle;
window.history.pushState({"html":response.html,"pageTitle":response.pageTitle},"", urlPath);
}
그런 다음 Window.OnPopState를 사용하여 뒤 / 앞으로 버튼 탐색을 감지 할 수 있습니다.
window.onpopstate = function(e){
if(e.state){
document.getElementById("content").innerHTML = e.state.html;
document.title = e.state.pageTitle;
}
};
브라우저 기록을 조작하는 데 더 심층적 인 모습을 보려면이 MDN 문서를 참조하십시오.
답변
HTML5는 History.PushState () 및 History.ReplaCestate () 메서드를 도입하여 각각 기록 항목을 추가 및 수정할 수 있습니다.
window.history.pushState('page2', 'Title', '/page2.php');
여기에서 이것에 대해 더 알아보십시오
답변
URL을 변경하려면 HTML5 RefuleState를 사용할 수도 있지만 브라우저 기록에 항목을 추가하지 않으려는 경우 :
if (window.history.replaceState) {
//prevents browser from storing history with each change:
window.history.replaceState(statedata, title, url);
}
이것은 백 단추 기능을 '깰'것입니다.이는 이미지 갤러리 (뒤로 버튼이 갤러리 인덱스 페이지로 돌아가서 갤러리 색인 페이지로 돌아가는 대신 갤러리 색인 페이지로 돌아가는 경우)과 같은 경우 각 이미지를 자체 고유 URL을 제공합니다.
답변
여기에 내 솔루션이 있습니다 (NewURL은 현재 하나로 교체하려는 새 URL이므로).
history.pushState({}, null, newUrl);
답변
참고 : HTML5 브라우저로 작업하는 경우이 답변을 무시해야합니다.이것은 이제 다른 답변에서 볼 수있는대로 가능합니다.
페이지를 다시로드하지 않고 브라우저에서 URL을 수정할 방법이 없습니다.URL은 마지막으로로드 된 페이지가 무엇인지 나타냅니다.변경하면 (document.location) 페이지를 다시로드합니다.
하나의 명백한 이유가있는 이유는 은행 로그인 페이지처럼 보이는 www.mysite.com에 사이트를 작성합니다.그런 다음 브라우저 URL 막대가 www.mybank.com을 변경합니다.사용자는 완전히 www.mysite.com을 정말로보고 있다는 것을 완전히 알지 못할 것입니다.
답변
parent.location.hash = "hello";
출처:https://stackoverflow.com/questions/824349/how-do-i-modify-the-url-without-reloading-the-page
최근댓글