2010-11-25 3 views
55

<head> 있습니다 :IE 호환성 모드 : 'X-UA 호환'태그 'Edge'

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

IE 용 최신 렌더링 모드를 강제로 있지만 호환 모드 마지막으로 간주됩니다?

예를 들어 IE8에서이 코드를 사용하면 강제로 IE8 또는 IE8 호환 모드를 사용합니까?

+0

MSDN에서 : "가장자리 모드 문서는 Internet Explorer에서 볼 수있는 최상위 모드를 사용하여 웹 페이지를 표시하므로 테스트 목적으로 만이 문서 모드를 사용해야합니다. 생산 용도. " (http://msdn.microsoft.com/en-us/library/cc288325(v=vs.85).aspx) – Steven

답변

63

이 태그는 브라우저가 브라우저가 지원하는 최신 렌더링 모드를 사용하도록합니다. 호환 모드는 실행되지 않습니다.

태그가 머리의 첫 번째 태그 여야합니다. 그렇지 않으면 작동하지 않습니다. HTTP 헤더의 순서가 중요하지 않으므로 가능한 한 HTTP 헤더를 사용하는 것이 좋습니다.

  • 당신이 제정신 DOCTYPE
  • 누락 브라우저를하고있다 : 당신은 머리글 또는 이러한 것들 중 하나가 가능성이 원인이되는 메타 태그를 사용할 때 브라우저 스틸 호환성 모드에서 끝나는 경우

    항상 호환성 모드를

  • 사이트가 "인트라넷 사이트"및 인트라넷 사이트에 대한 기본 설정에 호스팅을 사용하도록 설정이 설정됩니다

장 브라우저 호환성보기 설정

Microsoft는 적어도 192.168.x.x를 "인트라넷 사이트"로 간주합니다. IE8/IE9의 인트라넷 사이트 기본값은 호환 모드를 사용하는 것입니다. 프로그래머가이 메타 태그로도이 옵션을 무시할 수 없으므로 많은 비즈니스 응용 프로그램에서 큰 문제가됩니다. ("Compatitiblity보기에 표시 인트라넷 사이트는"메타 태그 또는 HTTP 헤더에 의해 재정의하지 않습니다 - 브라우저는이 경우 호환성보기를 완벽하게 제어에)

Compatibility View Settings

는 항상이 메타 태그 또는 HTTP를 추가 머리글?

이 메타 태그를 사용하는 것이 더 좋은 점은 브라우저의 주소 표시 줄에서 "호환보기"아이콘이 제거된다는 것입니다. 그러면 적어도 사용자는 해당 버튼을 사용하여 렌더링 모드를 결정할 수 없습니다.

+2

이 http://ie.microsoft.com/testdrive/ieblog/2010/Mar/ 02_HowIE8DeterminesDocumentMode_3.png 헤더로 오버라이드 할 수 있어야합니다. –

+0

"인트라넷 사이트에서"페이지가 제공된 경우 HTTP 헤더도 시도했습니다. "호환성보기에서 인트라넷 사이트 표시"확인란을 선택하면 헤더가 호환성 모드를 제거하지 않았습니다. 헤더로 작업하게 만들면 여기를 어떻게 개선했는지 알고 싶습니다. :) – oldwizard

+0

나는 MS 목록에 있던 국제 클라이언트를 위해 그것을 해결하기 위해 Asp.Net dll을 만들었습니다. 어떤 언어를 사용합니까? –

-3

Edge 키워드 만 사용하는 점은 무엇입니까? IE에서 최신 렌더링 엔진을 사용하려면 전체 메타 태그를 삭제하면됩니다. 호환성보기에서 "디스플레이 인트라넷 사이트를 선택 취소 한 경우에도

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, IE=Edge" /> 
+1

이것을 설명하는 내용의 링크를 명확하게 설명해 주시겠습니까? 필자가 본 경우 IE8에서 IE의 동작을 요청하는 IE = 8 (또는 다른 숫자)을 지정하거나 IE에서 사용 된 실제 버전의 기본 동작을 요청하기 위해 IE = edge를 지정합니다. –

+0

@Rasmus, 요점은, 실제로 * 여러 모드를 지정할 수 있습니다. 여기에 관련된 토론 (내부 링크가 더 있습니다) : http://stackoverflow.com/questions/3413629/emulate-ie7-for-ie8-but-not-for-ie9-using-x-ua-compatible – unclenorton

+3

Edge가 사용되었습니다. 사용자가 호환성 모드를 사용할 수 없게합니다. IE의 동작을 정상화하는 데 매우 도움이됩니다. 호환성 모드는 레이아웃이나 자바 스크립트와 같은 특정 요소를 깰 수 있으며 Edge는이를 모두 피할 수 있습니다. 메타 태그를 지정하지 않으면 사용자가 호환 모드를 선택하여 페이지를 손상시킬 수 있습니다. – derickito

2

:

그렇지 않으면 그런 일을 (즉, IE8은 IE7과 IE9처럼 행동 할 것이며, 새로운 평소와 같이 작동합니다) 보일 것입니다 "옵션을 선택하고 응답 헤더에 X-UA 호환을 설정하면 브라우저가 그룹 정책 인"호환성보기 "를 기본적으로 사용하는 또 다른 이유가 있습니다. 콘솔에서 다음 메시지를 확인하십시오.

HTML1203: xxx.xxx has been configured to run in Compatibility View through Group Policy.

여기서 xxx.xxx는 사이트 (예 : test.com)의 도메인입니다.이 경우 도메인에 대한 그룹 정책이 설정되어 있으므로 doctype, 헤더 등과 상관없이 test.com으로 끝나는 모든 사이트가 자동으로 호환 모드로 렌더링됩니다.

자세한 내용은 다음 링크를 참조하십시오.)는 HTML 코드를 설명 : http://msdn.microsoft.com/en-us/library/ie/hh180764(v=vs.85).aspx

+0

테스트를 통해 Compatibility View Group Policy 설정에서 Internet Explorer가 요청의 사용자 에이전트에 대해 "Mozilla/4.0 (호환 가능, MSIE 7.0 ...)"을 사용하도록했지만, X-UA 호환 IE = Edge 메타 태그는 IE의 실제 사용자 에이전트로 페이지를 렌더링합니다. 그래서 클라이언트 측 브라우저 탐지가 IE의 실제 버전을 탐지하는 동안 모든 서버 측 브라우저 탐지는 IE 7을 탐지합니다. –

0

나는 전문가가 아니에요하지만 시행 착오 :

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

나를 위해 문제를 해결했다. 나는 이것을 웹 사이트와 웹 응용 프로그램에 사용했고 IE8이 호환성 모드로 들어가는 것을 중단하고 IE10과 IE11에서 '표준'으로 표시했습니다.

관련 문제