[internet-explorer] Internet Explorer 8 문서 모드를 에뮬레이션 할 때도 Internet Explorer 11이 조건부 주석을 따르지 않는 이유는 무엇입니까?

새로운 Internet Explorer 11 개발자 도구를 사용하여 문서 모드를 “8”로 전환하고 있지만 조건부 주석은 여전히 ​​무시됩니다. 즉, 제대로 구문 분석되지 않고 일반 주석처럼 작동하지 않습니다. 따라서 조건부 주석 내부의 참조 파일은 브라우저에서 요청 /로드되지 않습니다.

왜 이런 일이 발생합니까? 버그입니까?

이것이 실제로 수정해야 할 버그라고 생각
되면 들어가서이 문제에 대해보고 된 Microsoft 버그 보고서에서이 문제를 재현 할 수 있다고 말하십시오. F12 개발자를 통해 문서 모드를 에뮬레이션 할 때 조건부 주석이 작동하지 않습니다. 도구 .

업데이트 : 이 문제는 언급 된 버그 보고서에서 수정 된 것으로보고되었습니다.



답변

에 따르면Jacob Rossi [MSFT]

이 문제는 지난주에 릴리스 된 IE11 용 업데이트 1에서 수정되어야합니다 .

2014 년 4 월 22 일에 게시되었습니다.

몇 가지 테스트를 직접 실행 한 결과이 문제가 해결되었으며 지금까지 제작 된 가장 놀라운 브라우저 인 Internet Explorer를 테스트하기 위해 모든 것이 다시 원활하게 실행되고있는 것 같습니다.


답변

방금 Windows 7의 Internet Explorer 11 에서 이것을 사용하여 사용 된 HTML5 의미 요소가 Internet Explorer 8 이하 (조건부 주석을 통해)에 대해 생성 되었는지 확인 하고 브라우저가이를 무시합니다. -_-

이 기능은 Internet Explorer 10 에서 완벽하게 작동했으며 Microsoft 는이 기능을 수정해야했습니다 .

<!--[if lte IE 8]><script src="ie8-html5.js"></script><![endif]-->

이 외에도 저는 실제로 Internet Explorer를 즐기고 있습니다.


답변

이것은 나를 위해 일했으며 가장 우아하고 쉬운 수정처럼 보입니다 ( Internet Explorer 10Internet Explorer 11 은 지원하는 유일한 브라우저입니다 -ms-high-contract).

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
   /* IE10+ specific styles go here */
}


답변

나는 최근에 같은 문제에 직면했습니다. 또한 일부 조건부 주석이 작동한다는 것을 발견했습니다.

  • gt그리고 lt잘 작동
  • gte그리고 lte결코 일하지

따라서 한 가지 잠재적 인 해결책은 gtlt연산자 를 사용하도록 조건문을 변경하는 것 입니다.

내가 더 유용하다고 생각한 다른 대안은 browserstack 과 같은 서비스를 사용하는 것 입니다 .


답변

이것에 대한 또 다른 해결책이 있습니다.

Internet Explorer 8 호환 모드가 설정된 Internet Explorer 11 에는 ‘MSIE 8.0’문자열이 포함되어 있습니다.

(PHP 예)

if (strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 8.0') !== false) {
    $head[] = sprintf('<link rel="stylesheet" href="ie8.css" />');
}


답변

나는 똑같은 문제가 있었다. 그것은 아침 내내 나를 미치게 만들었다. Modernizr을 추가 하고 yepnope.js를 포함한 모든 옵션을 선택했습니다.

이제 내 테스트는 다음과 같습니다.

Modernizr.load({
            test: Modernizr.canvas,
            nope: ['Content/Site-ie-8.min.css', 'Content/font-awesome-ie7.min.css']
});

이 경우 캔버스 (Internet Explorer 9 이전에서는 지원되지 않음)를 테스트하므로 조건부 콘텐츠를로드합니다. 이제 Internet Explorer 11 개발자 도구에서 브라우저 모드를 전환 할 때 작동합니다.


답변

여기에 언급 된 내용을 보지 못했지만이 버그 보고서 에서 호환성보기 설정을 변경하면 조건부 주석이 예상대로 작동한다는 사실이 언급되어 있습니다. 그래서:

  1. IE11에서는 “도구”를 클릭합니다.
  2. 호환성보기 설정
  3. URL을 입력하고 추가를 클릭합니다.

내 localhost에서 이제 잘 작동하는 것 같습니다. 나는 이것을 광범위하게 테스트하지는 않았지만 아마도 누군가를 도울 것입니다.