[windows] IE10은 IE7 모드로 렌더링됩니다. 표준 모드를 ​​강제하는 방법은 무엇입니까?

마이크로 소프트 사이트에서 그들은 단순한 doctype 선언으로 충분하다고 주장합니다. 그러나 이만큼 짧은 문서도 IE7 모드로 돌아갑니다.

<!DOCTYPE html>
<html>
<head>
   <title></title>
</head>
<body>

</body>
</html>

http://d.pr/i/fvzb+



답변

Internet Explorer는 대부분의 웹 페이지가 이전 버전의 IE를 대상으로 작성되었다고 가정하고 doctype, 메타 태그 및 HTML을 검토하여 최상의 호환성 모드를 결정합니다 (때로는 잘못됨). HTML5 doctype IE를 사용하더라도 인트라넷 사이트 인 경우 웹 사이트를 호환성 모드로 유지합니다.

웹 사이트가 항상 최신 표준 모드를 ​​사용하도록하려면 Display intranet sites in Compatibly이 기능이 꺼져 있는지 확인하십시오 . 그러나 웹 서버에 로컬 인 각 컴퓨터에서이 작업을 수행해야합니다 (지침은 아래 참조).

또는 더 나은 방법은 X-UA-Compatible헤더를 사용 하여 서버에서이 기능을 끌 수 있습니다 . 메타 태그사용하면 작동하지 않는다는 점에 유의해야 합니다.

<!-- Doesn't always work! -->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />

MSDN 전체에서 호스트 헤더 또는 메타 태그를 사용하면 인트라넷 사이트도 재정의해야한다고 언급되어 있습니다. Internet explorer 8의 호환성 모드 이해 기사 에는 다음 내용이 나와 있습니다.

많은 내부 비즈니스 웹 사이트가 Internet Explorer 7에 최적화되어 있으므로이 기본 예외가 해당 호환성을 유지합니다. … 메타 태그 또는 http 헤더를 사용하여 문서에 호환성 모드를 설정하면 이러한 설정이 무시됩니다.

그러나 실제로는 작동하지 않으며 호스트 헤더를 사용하는 것이 작동하는 유일한 옵션입니다. 이 기사의 댓글 섹션에는이 정확한 문제에 대한 수많은 예가 나와 있습니다.

메타 태그를 사용하면 태그가 태그 바로 아래에 있지 않거나 <head>이전에 너무 많은 데이터가있는 경우 (4k) 태그를 무시하는 것과 같은 몇 가지 다른 문제 가 있습니다. 또한 일부 버전의 IE에서 문서가 다시 구문 분석되어 렌더링 속도가 느려질 수 있습니다. 이러한 문제에 대한 자세한 내용은 MSDN 문서 Best Practice : Get your HEAD in order에서 확인할 수 있습니다.

X-UA-Compatible 헤더 추가

.NET 및 IIS를 사용하는 경우이를 web.config 할 수 있으며 프로그래밍 방식으로도 수행 할 수 있습니다.

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="X-UA-Compatible" value="IE=edge" />
    </customHeaders>
  </httpProtocol>
</system.webServer>

IIS를 사용하지 않는 경우 모든 언어로 쉽게 수행 할 수 있습니다. 예를 들어, 다음은 PHP에서 수행하는 방법입니다.

header('X-UA-Compatible: IE=edge');

X-UA-Compatible 헤더는 HTML5의 문서 타입을 가진 존재, 사이트는 항상 최신 표준 모드로 실행됩니다.

호환성보기 끄기 호환성보기
를 끄는 것이 여전히 유용 할 수 있습니다. 그렇게하려면Display all intranet sites in compatibility view 호환성보기 설정에서 선택을 하십시오.

호환성보기 설정

Alt메뉴를 가져 오기 위해 눌렀을 때이를 불러올 수 있습니다 .

여기에 이미지 설명 입력

편집
이 답변은 IE9에도 적용됩니다.


답변

이거 저 한테 맞아요 ..

<meta http-equiv="X-UA-Compatible" content="IE=edge" />


답변

머리에 다음 태그를 추가해보세요

<meta http-equiv="X-UA-Compatible" content="IE=11,IE=10,IE=9,IE=8" />


답변

메타 태그는 인트라넷 사이트에 대해 아무것도 수행하지 않으며 내 문제는 IE10 호환성 모드에서 IE10 렌더링이었습니다. 나를 위해 문제를 해결 한 것은 @Jeow의 답변을 더 취하고 web.configIIS 에서 다음을 추가하여 http 헤더에 해당 값을 사용하는 것입니다 .

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <clear />
      <!-- <add name="X-UA-Compatible" value="IE=edge" /> not good enough -->
      <add name="X-UA-Compatible" value="IE=11,IE=10,IE=9,IE=8" />
    </customHeaders>
  </httpProtocol>
</system.webServer>

IE 목적을 위해 인트라넷 사이트에는 외부로 라우팅되지 않는 공용 사이트가 포함됩니다. 예를 들어 사무실에서 근무하는 Stackoverflow 직원은 호환 모드에서 stackoverflow.com을 볼 수 있습니다.


답변

다음을 수행했을 때 완벽하게 작동했습니다.

http://msdn.microsoft.com/en-us/library/gg699338(v=vs.85).aspx

첫 번째 상자에서 제공하는 정확한 예를 사용했습니다 (누락 된 </html> 아래에 을 ) IE10에서 열었고 표준이 강제되었습니다.하지만 확실하지 않은 표준을 강제하려면 html의 실제 콘텐츠가 필요할 수 있습니다.

제 제안은 빈 코드를 실제 내용 (간단한 것)으로 바꾸고 그것이 무엇을하는지 보는 것입니다.


답변