program story

Internet Explorer 11 문서 모드를 에뮬레이션 할 때 Internet Explorer 11에서 조건부 주석을 사용하지 않는 이유는 무엇입니까?

inputbox 2020. 7. 29. 08:11
반응형

Internet Explorer 11 문서 모드를 에뮬레이션 할 때 Internet Explorer 11에서 조건부 주석을 사용하지 않는 이유는 무엇입니까?


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

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

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

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


에 따르면Jacob Rossi [MSFT]

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

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

몇 가지 테스트를 직접 실행하면이 문제가 해결되었으며 지금까지 만들어진 가장 놀라운 브라우저를 테스트하기 위해 모든 것이 원활하게 다시 실행됩니다 ... Internet Explorer!


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

이 기능은 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 */
}

나는 최근에 같은 문제에 부딪쳤다. 또한 조건부 주석이 작동한다는 것을 알았습니다.

  • gtlt가공 한 고급
  • gte그리고 lte결코 일하지 않았다

따라서 가능한 해결책 중 하나는 gtand lt연산자 를 사용하도록 조건문을 변경하는 것 입니다.

더 유용한 다른 대안은 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을 입력하고 추가를 클릭하십시오

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


' gt'및 ' lt' 같은 일부 조건부 주석은 작동 하지만 예를 들어 <!--[if IE 8]>작동하지 않습니다. 웹 페이지가 다른 버전의 Internet Explorer 브라우저에서 어떻게 보이는지 확인하려는 개발자에게는 이것이 불편하지만 모든 나쁜 소식은 아닙니다.

조건부 주석이 작동하지 않더라도 스타일 시트를 한 번에 하나씩 추가하여 각 Internet Explorer 버전에서 웹 페이지가 어떻게 보이는지 테스트 할 수 있습니다. Firefox, Chrome, Internet Explorer 10 및 Internet Explorer 용 스타일 시트가 있다고 가정하겠습니다. 11은 ' screen.css'이고 Internet Explorer 9 전용 스타일 시트 는 ' ', Internet Explorer 8 전용 스타일 시트 screen-ie9.css' screen-ie8.css'입니다.

Internet Explorer 9에 대해서만 웹 페이지를 테스트하려면 다음을 수행하십시오.

<link rel="stylesheet" href="path/css/screen.css"     type="text/css" />
<link rel="stylesheet" href="path/css/screen-ie9.css" type="text/css" />

F12 개발자 도구의 에뮬레이션 섹션에서 '문서 모드'를 '9'로, '사용자 에이전트 문자열'을 'Internet Explorer 9'로 설정하십시오. 문서 모드는 Internet Explorer 9에서 사용하는 표준이며 사용자 에이전트 문자열은 브라우저 자체입니다.

P.S: I'm assuming that the 'screen.css' is your base stylesheet which is the reason I am calling it first than "overwriting" the Internet Explorer 9 fixes later by calling 'screen-ie9.css' second.

By doing this, you can be "sure" (I have to test with VMs in order to write the word 'sure' without quotes) that you are viewing your webpage on an Internet Explorer 9 browser. When you are done testing and styling on Internet Explorer 9, and you want to test with Internet Explorer 8, you can easily do the same trick by replacing this:

<link rel="stylesheet" href="path/css/screen-ie9.css" type="text/css" />

with this:

<link rel="stylesheet" href="path/css/screen-ie8.css" type="text/css" />

So, it is just a matter of MINOR inconvenience from Microsoft's side, BUT the new F12 developers' tools are offering LOTS of amazing features, which makes this not that much of a big deal.

참고URL : https://stackoverflow.com/questions/19446584/why-doesnt-internet-explorer-11-honour-conditional-comments-even-when-emulating

반응형