2011-12-19 3 views
1

저는 div의 'footer'를 페이지 하단에두고 페이지 변경을 통해 열어 둡니다. 필자는 JQuery의 .load 함수를 메인 콘텐츠 div에 사용하여이 방법을 사용했지만, 다른 페이지로 이동하면 URL은 그대로 유지됩니다. 링크가 URL을 변경하지 않고 div를 열린 상태로 유지할 수있는 방법이 있습니까? 나는 div를 통해 음악을 재생할 계획이므로 페이지 스위치 사이를 닫을 수 없거나 음악이 멈추거나 다시 버퍼해야합니다.div를 페이지 변경으로 열어 두시겠습니까?

답변

2

는 다음을 사용하여 HTML5로이 작업을 수행 할 수 있습니다

window.history.pushState(obj, "Title", url); 

당신의 .load() 전화 후.

표시되는 URL이 통화중인 주소와 일치하도록 변경되지만 동일한 도메인에 속한 URL 만 허용됩니다.

는 비 HTML5 브라우저를 지원하려면 https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history

+0

저에게 어떤 이유로 든 일하고 싶지 않습니다. 대부분의 호환성 문제. 내 코드를 올리려고했지만 여기 새로 왔기 때문에 제대로 포맷 할 수없는 것 같습니다. – Henzl0l

+1

코드 앞에 공백 4 개를 넣거나 붙이면 선택한 다음 {} 버튼을 누르십시오. – Alnitak

1

당신은 프레임과 해시 URL을 사용해야합니다 참조하십시오. 나는 구식의 프레임 셋을 사용할 것이다. (나는 실제로 프레임 셋을 제안하고 있다고 믿을 수 없다. 그것은 나쁜 습관으로 간주되며, 아마도 11 년 후에 이런 코드를 작성하지는 못했지만,이 경우에는 실제로 올바른 솔루션처럼 보인다. iframe을 사용할 수있다. 하지만 나는 프레임이 실제로 더 의미가 생각하는)

<frameset border="0" rows="*,100"> 
    <frame src="/mainPage" id="content" /> 
    <frame src="/footer" id="footer" /> 
</frameset> 

사용 Ben Almanhashchange plugin,이 같은 스크립트를 사용하여 페이지 탐색 관리 :.

$(function() { 
    $("frame").load(function() { 
     document.title = w.document.title; 
     var links = $("a[href]", this.contentWindow.document); 
     links.attr("target", "_top"); 
     links.click(function (e) { 
      if (this.hostname == location.hostname) { 
       e.preventDefault(); 
       var path = this.pathname.replace(/^[^\/]/, "$&/"); 
       location.hash = "#" + path + this.search + this.hash; 
      } 
     }); 
    }); 
    var w = $("#content")[0].contentWindow; 
    $(window).hashchange(function() { 
     var hash = location.hash.substr(1) || "/mainPage"; 
     var contentLoc = w.location.pathname + w.location.search + w.location.hash; 
     if (hash.toLowerCase() != contentLoc.toLowerCase()) { 
      w.location.replace(hash); 
     } 
    }).trigger("hashchange"); 
}); 

데모 : http://jumpingfishes.com/framed/

n 프레임 대신, AJAX를 사용하여 컨텐트를 다시로드 할 수 있지만 프레임을 더 빨리 구현할 수 있습니다.

+0

+1 Sweet example gilly3! (btw, 그건 플러그인이 무엇인지, 맞지?! :) –

관련 문제