2010-12-06 2 views
0

나는 AJAX 기반의 로딩과 함께이 플러그인을 사용하고있다. 내 페이지에는 해시 조각이없는 들어오는 링크를 잡으려고 할 때를 제외하고 모든 것을 정직하게 처리한다.Jquery address : 들어오는 딥 링크를 처리 할 수 ​​없습니까?

주소 표시 줄
들어오는 링크 -> hostname.com/path/
사용자가 여기에
내가 포함하지 플러그인을 기대하고 또 다른 아약스 상태 -> hostname.com /경로/ #hash로 이동 해시가이를 나타 내기 때문에 주소 표시 줄에 대한 경로.

AJAX는
들어오는 링크 -> hostname.com/path/
사용자가 다른 AJAX 상태 -> hostname.com/path/
실제 요청 수행 부하 올바른 상태로 이동 얻는다.

주소 표시 줄에 경로를 추가하지 못하게 할 방법이 있습니까?
예를 들어
호스트 이름/# 웹 개발
대신 :

$를 처리
호스트 이름/웹 개발/# 웹 개발

클릭 ('a.internalLink') .live ('click', function (event) {
event.preventDefault(); clickedLink = $ (this); $ .address.value (clickedLink.attr ('href').)); }};

답변

0

당신은 또한 조작 할 수 있도록 새로운 HTML 5 추가,에 관심이있을 수 event.preventDefault();

$(document).delegate('a', 'click', function (event) { 
    var targetHref = this.href; 

    window.location.href = targetHref; // or whatever 

    event.preventDefault(); // stop the page changing. 
}); 

를 사용하여 발생하는 기본 동작을 클릭되는 앵커 태그의 이벤트를 캡처하고, 방지한다 브라우저 기록; 즉 AJAX를 사용하여 페이지를 업데이트 할 수 있지만 주소는 계속 변경됩니다. 자세한 내용은 here을 참조하십시오 (Mozilla 개발자 센터). 내가 같은 해시 동등한에 대한 해시되지 않은 URL을 리디렉션하여 문제를 우회 한

+0

안녕하세요 덕분에 당신의 도움을, 나는 이미 자리에이 코드 조각이 :
$를 ('a.internalLink')를 살 ('클릭'기능 (이벤트) {\t \t \t에서는 event.preventDefault();.
\t \t clickedLink = $ (이)
\t \t $ .address.value (clickedLink.attr ('HREF').replace (base, ''));
}) – Phorze

+0

죄송합니다. 여기에 코드를 제대로 포맷 할 수 없습니다. – Phorze

+0

기본 이벤트를 방지하는 방법으로 제 질문을 업데이트했습니다. – Phorze

0

:

if(!window.location.hash){ 
    window.location.href = 'http://'+window.location.host+'/#'+window.location.pathname+window.location.search; 
}; 

그것은, 어쩌면 더 나은 해결책이 아니다 그 우아하고있다,하지만 그것을 작동합니다.