1

안녕하세요. 이번 달 초 IE9 출시 이후 시스템에서 수리를하고 있습니다. 그냥 다른 사람이 조건부 주석과 IE9에서 동일한 문제를 경험했는지, 내 문제에 대한 더 좋은 해결 방법이 있는지 알고 싶었습니다.Javascript에 대한 IE9 파기 조건부 코멘트?

조건부 주석은 IE 브라우저의 해결 방법으로 일관되게 작동하는 것으로 잘 알려져 있습니다. IE9가 이것을 깨뜨리는 것 같습니다. IE9 특정 스크립트 (특히 document.createElement (">"입력 이름 = "")를 IE9에서 파기했지만 다른 문제가 있음)를 테스트하고 있었고 Internet Explorer 6의 해결 방법을 만들어야했습니다. & 7. 나는 이것을했다 :

<!--[if IE 6]> 
    <script type="text/javascript"> 
     var ie6 = true; 
    </script> 
    <![endif]--> 
    <!--[if IE 7]> 
    <script type="text/javascript"> 
     var ie7 = true; 
    </script> 
    <![endif]--> 

ie6과 ie7 모두 참이다. WTF.

제 해결 방법은 논리를 역순으로 아래의 조건부 주석으로 변경하고 if (! ie9plus)를 수행하는 것입니다.

<!--[if gte IE 9]> 
    <script type="text/javascript"> 
     var ie9plus = true; 
    </script> 
    <![endif]--> 

더 좋은 해결책이 있습니까? IE 디버깅 팀에서 웹 디버깅의 중요한 측면을 깨뜨린 것에 대해 고함을 지르고 비명을 지르는 것이 좋을까요?

편집 : 추가 테스트시 인코딩 문제 인 것 같습니다. 어떻게 든 파일이 잘못 인코딩되었고 조건부 주석이 깨졌습니다. IE9에 대한 주석을 변경했을 때도 파일 인코딩을 수정했습니다. IE9는 실제로 조건부 주석을 올바르게 지원합니다. FUD에 대해 유감스럽게 생각합니다.

+0

찾기를 재현 할 수 없습니다. IE9에서는 ie6과 ie7이 모두 정의되지 않았습니다. 페이지를 호환성보기 모드로 변경하면 ie7이 정의되지만 ie6은 정의되지 않습니다. – EricLaw

+0

IE9 표준 렌더링을 사용하는 IE9 브라우저 모드로 실행 중이 었습니다. doctype은' ' – synthparadox

+0

나는 당신이 그 주제에 대한 가능한 FUD를 아주 잘 정리했다고 생각한다. – Will

답변

1

IE blog은 여전히 ​​작동한다고 말합니다. 그러나 렌더링 모드에 연결되어 있으며 7 또는 9 (이전보기는 호환 됨)입니다.

IE 팀은 기능을 감지하는 대신 브라우저에 맞는 조건부 주석 사용을 권장하지 않습니다. 그러나, 아마도 자바에 대한 고려 사항 일 것입니다.

+0

링크가 매우 유용했습니다. 감사. "조건부 주석 방지"의 제목 뒤에 오는 포인트 중 하나는 "IE6 또는 IE7 스타일 시트와의 역 호환성을위한 조건부 주석을 사용하는 것이 적절한 경우가 있습니다"입니다. IE6/7에 대한 코드 수정과 관련되어 있다고 주장 할 수 있습니다. 나는 그들이 단지 자바 스크립트에 대한 조건부 주석을 어기는 것을 바보 같다고 생각하지만 CSS를 위해 그것을 지켰다. – synthparadox

관련 문제