2

브라우저가 IE7인지 여부에 따라 자바 스크립트 코드 행을 변경하고 싶습니다. 다음은 다른 브라우저의 코드입니다.자바 스크립트 : IE7 여부에 따라 변경

function showHint(myId) 
{ 
    document.getElementById(myId).style.display = "inline-block"; 
} 

IE7의 경우 display = "inline"을 원합니다.

나는 조건부 컴파일을 시도했습니다 (this 어떻게 브라우저를 감지하는 나에게 보여 주었다), 그러나 그것은 작동하지 않았다 :

function showHint(myId) 
     { 
      document.getElementById(myId).style.display = "inline-block"; 
      /*@cc_on 
       @if(navigator.appVersion.indexOf(“MSIE 7.”)!=-1) 
       { 
        document.getElementById(myId).style.display = "inline"; 
       } 
      @*/ 
     } 

어떤 도움이 크게 감사합니다!

편집 : JQuery를 사용하지 않습니다.

+0

왜이 기능이 필요한가요? 사용자 에이전트 스니핑은 실제 상황이 ** 기능 탐지 ** 인 경우 잘못된 접근입니다 ** http://peter.michaux.ca/articles/feature-detection-state-of-the-art-browser-scripting –

+0

질문 "왜"인라인 블록 "대신"인라인 "을 표시해야합니까? IE7에서"인라인 블록 "은 요소 아래 줄을 표시하고"인라인 "은 표시하지 않기 때문입니다 – dmr

+0

doctype은 무엇입니까? 페이지가 표준 모드 또는 quirksmode로 렌더링 되었습니까? http://validator.w3.org/에서 유효성을 확인 했습니까? –

답변

7

는 IE의 conditional comment 구문 분석의 행동에 의해 결정되는 글로벌 설정 쓸 수

:

if(/MSIE 7/.test(navigator.appVersion)) { /* msie7 related code */ } 
+0

정말 고마워요! :) – dmr

0

브라우저 버전을 감지하는 Jquery 플러그인이 있습니다. 정확한 링크를 모르겠습니다 ...

2

navigator.userAgent을 확인해야합니다. 난 당신이 MSIE 7을 결정하기 위해 정규 표현식을 사용할 수 있다고 생각

<!--[if IE 7]><script> var isIE7 = true; </script><![endif]--> 
1

: 당신이 jQuery를 사용하는 경우, 당신은 단순히

if ($.browser.msie && $.browser.version === 7) 
0

조건부 컴파일이 작동해야합니다. 그것은 당신의 오류가 당신이 문자열 (“MSIE 7.”) 또는 IE에 알 수없는 무언가에 디스플레이를 할당하려고 시도하고 그것에 맞는 데 오류를 던지고있다 구분할 따옴표를 사용하는 것 같습니다. 다음은 반복하지 않고이 문제를 해결하는보다 간결한 버전의 기능입니다.

function showHint(myId) 
{ 
    document.getElementById(myId).style.display = "inline" //@cc_on; 
    + "-block"; 
} 
관련 문제