2013-09-05 3 views
1

아래 코드는 모든 브라우저에서 작동하지만 IE8 및 IE7에서는 텍스트가 유지되지 않는 것으로 보입니다. 무슨 일이 일어나고 있는지의ie8의 jquery 변경 attr href가 텍스트를 변경합니다.

예 :

<a href="http//site.com/">view site</a> 

IE

<a href="http//site.com/">http//site.com/</a> 

에 내 코드 후 나는 약간의 검색을했고,이 문제를 해결 로그인 한 여러 문제 버그가 있습니다.

jQuery 1.4.2를 사용하고 있지만 1.10도 시도했지만 차이가 없습니다.

var replacer = $('.ir a, .tk a'); 
//apply menu to inner links 
$(replacer).each(function() { 
    //get page param with getmenu  
    var getmenu = location.href.split("&menu")[1]; 
    if (typeof getmenu === 'undefined') { 
     getmenu = "&menu=1"; 
    }; 
    var attr = $(this).attr("href"); 
    $(this).attr("href", attr + getmenu); 
}); 
+2

jsFiddle.net 예제를 만들고이 HTML을 질문에 게시 할 수 있습니까? – j08691

+0

IE8에서는 jsfiddle을 실행할 수 없습니다. – Blynn

+1

크롬으로 빌드 한 다음 ie8로/embeded로 탐색합니다. –

답변

1

이 문제는보고 된 지 4 년 후에도 최신 jQuery (1.11.3)에서 여전히 문제가되는 것으로 보입니다. 가장 간단한 해결책은 jQuery로 href 속성을 변경 한 후에 텍스트를 재설정하는 것입니다. jQuery를이 HREF뿐만 아니라 텍스트를 변경하기 때문에

는, 당신이 그것을 변경하기 전에 텍스트 만 캐시하고이 어땠는지에 다시 텍스트를 설정 :

// Keep a copy of the text before jQuery messes it up. 
var text = $(this).text(); 
// Change the href. 
var attr = $(this).attr("href"); 
$(this).attr("href", attr + getmenu); 
// Set the text back to what it was. 
$(this).text(text); 

이 모두 사용하기 매우 안전합니다 브라우저 버전이므로이 해결 방법을 적용하기 전에 IE < 9인지 확인할 필요가 없습니다.