내가 할 수 있는 방법이 수정하십시오 리로드하지 않고 현재 페이지의 url 을 페이지?
내가 전에 이 부분을 # 액세스하려는 해시보다 가능한 경우).
나만 변경해야 할 부분 후 도메인 도왔으매 it& # 39 의 미끼처럼이 아니라 I& # 39 m, 위반 크로스-도메인 정책.
window.location.href = "www.mysite.com/page2.php"; // Sadly this reloads
구글 크롬, 사파리, 파이어폭스, 그리고 있는 이 가능해졌습니다 4+ Internet& Explorer& nbsp;;;; 빨리 10pp4+!
예:
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 = function(e){
if(e.state){
document.getElementById("content").innerHTML = e.state.html;
document.title = e.state.pageTitle;
}
};
보다 심도 있게 브라우저 기록 조작 http://schmidt. devlib. [이 매든 (문서] (https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history).
HTML5 는 ['흐리스토리오푸쉬국가 ()'] (https://developer.mozilla.org/en-US/docs/Web/API/History_API # The_pushState _method ()) 및 ['흐리스토리오레프리스국가 ()'] (https://developer.mozilla.org/en-US/docs/Web/API/History_API # The_replaceState _method ()) 를 추가 및 수정하십시오 엔트리입니다 각각 사용할 수 있는 방법이 있다.
window.history.pushState('page2', 'Title', '/page2.php');
자세한 내용은 here 에서 이
if (window.history.replaceState) {
//prevents browser from storing history with each change:
window.history.replaceState(statedata, title, url);
}
방법이 없다 uirl 수정하십시오 리로드하지 않고 브라우저의 페이지. 어떤 마지막 로드됨 페이지 url 을 나타내고 있다. ('도쿠망.로카션') 는 변경하십시오 경우 해당 페이지를 다시 로드하십시오.
사이트) 에 'www.mysite.com' 을 작성하는 이유가 있다고 한 명백하네 looks like a 은행 로그인 페이지로. 그런 말을 'www.mybank.com' 있지만브라우저에 변경하십시오 uirl 표시줄에는. 이들이 'www.mysite.com' 정말 사용자가 완전히 비인식 보면 됩니다.
현대의 브라우저와 HTML5 푸시국가 '에' 창 '역사' 라는 메서드입니다 있습니다. 할 수 없이 역사 및 밉니다 uirl 변경하십시오 페이지를 로드하는.
이를 사용할 수 있습니다 이 같은 it 가 앨리어스보다 매개 변수 3 개, 1) 스테이드 객체에는 2) 제목 및 URL):
window.history.pushState({page: "another"}, "another page", "example.html");
이렇게 하면 아니라 uirl 변경하십시오 페이지를 다시 로드하십시오. 또, t, 네가 만일 doesn& # 39 페이지에 있는지 확인할 수 있는 URL 에 대해 몇 가지 타임코드가 JavaScript 코드를 이렇게 그들과 함께 작업할 수 있습니다.
또한 '있다' 는 이 모든 일을 할 수 있는 똑같은 흐리스토리오레프리스국가 () 는 기존의 역사 수정하십시오 새로 만드는 대신 하나!
또한 만들 수 있는 기능을 갖고 있을 경우 확인할 수 있는 '다음' 흐리스토리오푸쉬국가 미삭 다음과 같습니다.
function goTo(page, title, url) {
if ("undefined" !== typeof history.pushState) {
history.pushState({page: page}, title, url);
} else {
window.location.assign(url);
}
}
goTo("another page", "example", 'example.html');
또한 HTML5 브라우저 ',', '#' 를 변경할 수 있는 페이지를 다시 로드하십시오 < won& # 39, t. # 39 의 that& 할 수 있는 길을 따라 각 /dev/raw/raw1 hba1-spa 라는.
'#' 는 다음과 같은 일에 아주 쉽게 변경
window.location.hash = "example";
진실이며당신이 멀티비트 it 다음과 같습니다.
window.onhashchange = function () {
console.log("#changed", window.location.hash);
}
만일 you& # 39, re trying to do 는 사용자가 페이지를 즐겨찾기 공유할 수 있도록 하는 don& 진실이며당신이 # 39, / t # 39, re 해시보다 앵커 URL 및 you& 정확히요 적절한 사용하지 않을 경우 다른 사항은요 관심용 두 부분으로 이 작업을 수행할 수 있습니다. 위에서 설명한 후 확인 로카션.하시 사용하면 구현하십시오 홈 페이지에서 확인할 수 있는 해시보다 앵커 URL 에 리디렉션할 정보기술 (it), 그 이후 수 있습니다.
예를 들면 다음과 같습니다.
사용자 켜있을 'www.site.com/section/page/4'
는 몇 가지 동작을 변경하는 사용자가 url 을 'www.site.com/ # /section/page/6' (사용 해시보다). # 39 라고, ve 로드되었는지 you& 정확한 내용을 6 페이지 꽂으십시오 페이지이므로 그러하매 별도로 사용자가 너무 미친 해시라고 아니다.
3), 또는 다른 사람에게 전달하는 것이 이 사용자 즐겨찾기 URL 에
4), 또는 다른 사람이 동일한 사용자 나중에 마이그레이션된 /section/page/6 '' www.site.com/ #
if (window.location.hash.length > 0){
window.location = window.location.hash.substring(1);
}
희망을 주는 센스! # 39 에 대한 유용한 외곽진입 it& 경우도 있습니다.
다음은 변경하십시오 페이지 URL 기능이 리로드하지 않고. Html5 사용할 뿐이다.
function ChangeUrl(page, url) {
if (typeof (history.pushState) != "undefined") {
var obj = {Page: page, Url: url};
history.pushState(obj, obj.Page, obj.Url);
} else {
window.location.href = "homePage";
// alert("Browser does not support HTML5.");
}
}
ChangeUrl('Page1', 'homePage');
록션 (통칭 '빈다우드로카션' 또는 '도쿠망.로카션') 의 변경 사항이 발생할 수 있는 새로운 URL, 만약 당신이 아니라 uirl 변경 요청을 하였다. Url 을 변경할 경우 url 을 변경할 수 있습니다.
같은 기법을 사용하여 서버측 URL 재작성할 [Apache 의 mod_rewrite] (http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html) 와 같은 하지 않을 경우 url 을 사용하고 있습니다.
앵커 태그를 추가할 수 있습니다. 난 내 사이트 (http://www.piano-chords.net/) 이 기능을 사용할 수 있도록 함께 방문한 사람들이 어떤 페이지의 google analytics 추적할 수 있습니다.
내가 추가하기만 앵커 (anchor) 태그 부분을 다음 페이지를 추적되도록 싶다.
var trackCode = "/#" + urlencode($("myDiv").text());
window.location.href = "http://www.piano-chords.net" + trackCode;
pageTracker._trackPageview(trackCode);
토마스 스티에르네고르 지적한 대로 제퍼슨 흐리스토리자이스 에서 사용할 수 있습니다 수정할 수 있는 동안에는 URL 링크를 통해 Ajax 및 애플리케이션 사용자 매개변수입니다 이동합니다.
그 이후 거의 한 년 경과한 오토메이티드 흐리스토리자이스 되었고, 그리고 더 안정적이고 높은 크로스 브라우저. 이제는 기록을 관리하는 데 사용할 수 있을 뿐 아니라 많은 주에서 html5 호환일 html4 국한됨 브라우저. [이 데모] [2] 작동하잖아 사례를 볼 수 있습니다 (물론 그 기능 및 제한값 시도하시려면 적이 있다.
도움이 필요하시면 제가 할 수 있는 방법을 사용할 수 있으며 이 라이브러리를 소스 코드에 대해 살펴보도록 구현하십시오 제안하세요 데모 페이지: # 39, it& 볼 수 있을 것이라고 아주 쉽습니다.
마지막으로, 어떤 문제에 대한 포괄적인 사용에 대한 설명 될 수 있습니다 (및 해시뱅 (hashbang)), 해시 체크아웃하려고 이 링크 로 벤햐민 루프턴.
[2] http://browserstate.github.io/history.js/demo/? 상태 = 1:
사용:
let stateObject = { foo: "bar" };
history.pushState(stateObject, "page 2", "newpage.html");
그것을 볼 수 있는 블로그 포스트 업데이트하십시오 페이지 url 을 브라우저 없이 리로드하려면 .
'빈다우스 시스토리오푸쉬국가 사용하여 (";;;;; /new-url" string" 객체인지 또는 " Title" ")', 하지만 그래도 여전히 새로운 URL 전송하십시오 요청 서버.