programing

IE10은 IE7 모드에서 렌더링합니다.표준 모드를 적용하는 방법은 무엇입니까?

easyjava 2023. 4. 29. 10:02
반응형

IE10은 IE7 모드에서 렌더링합니다.표준 모드를 적용하는 방법은 무엇입니까?

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

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

</body>
</html>

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

Internet Explorer는 대부분의 웹 페이지가 이전 버전의 IE를 대상으로 작성되었다고 가정하고 최상의 호환성 모드(때로는 잘못되기도 함)를 결정하기 위해 문서 유형, 메타 태그 및 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: 머리를 정돈하세요.

X-UA 호환 헤더 추가

을하는 경우.및를 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 doctype과 함께 있으며 사이트는 항상 최신 표준 모드로 실행됩니다.

호환성 보기 끄기
호환성 보기를 해제하는 것이 여전히 유용할 수 있습니다.그렇게 하기 위해서는Display all intranet sites in compatibility view를 참조하십시오.

호환성 보기 설정

누르면 메뉴판을 얻을 수 있습니다.

여기에 이미지 설명 입력

편집 이 답변은 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 렌더링이 문제였습니다.제가 이 문제를 해결한 것은 @Jow의 대답을 더 나아가서 다음을 추가함으로써 http 헤더에 그 값을 사용하는 것이었습니다.web.configIIS 아래:

<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의 실제 콘텐츠가 필요할 수도 있다고 생각합니다.

빈 코드를 실제 콘텐츠(간단한 것)로 대체하고 그 기능을 확인하는 것이 좋습니다.

언급URL : https://stackoverflow.com/questions/13284083/ie10-renders-in-ie7-mode-how-to-force-standards-mode

반응형