2011-09-02 3 views
0

내가 그렇게처럼 내 HREF 링크를 설정하고있어 JQuery와 주소를 IE에서 올바른 HREF 링크를 설정할 수 없습니다 : 내가 볼JQuery와 주소를 사용

$.address.change(function(e) { 
    alert(e.value); 
}); 

:

<a href="#view_profile=123">view 123</a> 

내 주소 변경 이벤트를 호출 할 때 FF와 크롬의 값은 내가 예상하는대로 :

/view_profile=123 

IE는 그러나 앞의 "/"그래서 등으로 전체 URL 경로를 반환 :

/http://localhost/#view_profile=123 

IE가 이것을하는 이유와 그 문제를 해결하는 가장 좋은 방법은 무엇입니까? 여러 가지 시도를했지만 매번 똑같습니다.

// Setup jQuery address on some elements 
$('a').address(); 

// Run some code on initial load 
$.address.init(function(e) { 
    // Address details can be found in the event object 
}); 

// Handle any URL change events 
$.address.change(function(e) { 
    alert(e.value); 

    var urlAux = e.value.split('='); 
    var page = urlAux[0]; 
    var arg = urlAux[1]; 

    alert("page: " + page); 
    alert("arg: " + arg); 

    if (page == "/view_profile") { 
     ... 
    } 
}); 
+0

어떻게 당신의 앵커 관련이 있습니까 :

$(".testclass").click(function() { var id = null; if ($.browser.msie) { id = $(this).attr('href').slice($(this).attr('href').indexOf('#')+1); } else { id = $(this).attr('href').substr(1); } alert("ID: " + id); location.href = "#view_profile=" + id; return false; }); 

는 I는 또한 같은 ID로 HREF 값을 설정했다? – Phil

+0

e는 내 이벤트 개체이며이 경우 링크 값을 보유합니다. – Paul

+1

이 문제에 대한 해결책은 링크 값을 얻는 방법을 기반으로합니다. 그 코드를 게시 할 수 있습니까? IE에서 앵커 태그를 동적으로 생성 할 때 href 속성은 상대 경로 만 제공된 경우에도 항상 절대 경로를 포함합니다. 예를 들어,이 jsfiddle를 참조하십시오. http://jsfiddle.net/xKLKZ/ –

답변

1

해결 방법이 있습니다. 링크에 클래스 태그를 추가하고 클래스에서 click 이벤트를 찾으면 URL을 설정할 수 있으며 jquery 주소 변경 이벤트가 올바르게 트리거됩니다.

는`e` 무엇
<a href="#123" class="testclass">123</a> 
0

이 URL을 얻을 $ (이) .prop ("HREF")를 사용해보십시오 : 여기

내가 링크 경로를 얻기 위해 사용하는 코드입니다. 모든 브라우저에서 동일한 값을 가져야합니다.

편집 : pathname이 IE에서 작동하지 않습니다.

.. 더 많은 테스트를 수행 했어야합니다. pathname이 IE에서 작동하지 않습니다. "href"를 사용하십시오.