모든 인트라넷 사이트에서 강제로 호환성 모드를 사용하는 클라이언트를 위해 작업하고 있습니다. 호환성 모드를 강제로 해제하는 HTML에 태그를 넣을 수 있는지 궁금합니다.
모든 인트라넷 사이트에서 강제로 호환성 모드를 사용하는 클라이언트를 위해 작업하고 있습니다. 호환성 모드를 강제로 해제하는 HTML에 태그를 넣을 수 있는지 궁금합니다.
답변:
"가장자리"모드가 있습니다.
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>My Web Page</title>
</head>
<body>
<p>Content goes here.</p>
</body>
</html>
연결된 MSDN 페이지에서 :
에지 모드는 Windows Internet Explorer에 사용 가능한 최고 모드로 콘텐츠를 표시하도록 지시합니다. 실제로 "잠금"패러다임을 깨뜨립니다. Internet Explorer 8에서는 IE8 모드와 동일합니다. Internet Explorer의 (가설) 향후 릴리스에서 더 높은 호환성 모드를 지원하면 Edge 모드로 설정된 페이지가 해당 버전에서 지원하는 최고 모드로 나타납니다. 그러나 Internet Explorer 8에서 볼 때 동일한 페이지가 여전히 IE8 모드로 나타납니다.
그러나 프로덕션 환경에서는 "가장자리"모드를 권장하지 않습니다.
웹 개발자는 이후 버전의 Windows Internet Explorer에서 페이지 콘텐츠를 렌더링 할 때 예상치 못한 결과가 발생할 수 있으므로 에지 모드 사용을 제한하여 페이지 및 기타 비 프로덕션 사용을 테스트하는 것이 좋습니다.
나는 솔직히 이유를 완전히 이해하지 못한다. 그러나 이것에 따르면 현재 가장 좋은 방법은을 사용하는 것 IE=8
입니다.
IE=10
는 자체 사이트에서 사용 중인 것으로 보입니다 . IE10 (미리보기 버전)에서 사이트를 테스트 한 경우이를 사용하는 것이 안전합니다. 그렇지 않으면 IE=9
지금 당장 고수하고 싶을 수도 있습니다 .
Tools->Compatibility View Settings
호환성보기에 모든 웹 사이트 표시를 선택 하여 사용자 (또는 sysadmin)가 호환성 모드를 기본값으로 설정 한 경우이 기능이 작동하지 않는 것으로 나타났습니다 . 문제를 해결하려면 HTTP 응답에 헤더를 반환해야합니다.X-UA-Compatible: IE=edge
몇 시간 후이 문제를 해결 한 후 ... X-UA-Compatible
문서 에서 도움이 된 몇 가지 주요 내용은 다음과 같습니다 . http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx#ctl00_contentContainer_ctl16
사용 <meta http-equiv="X-UA-Compatible" content=" _______ " />
표준 사용자 에이전트 모드 (비 에뮬레이트 사람이) 무시 <!DOCTYPE>
페이지에서 지시를하고 IE의 버전에서 지원하는 표준 기반의 렌더링 (예를 들어, IE=8
것보다 순종 표 테두리 간격 및 일부 의사 선택기 이상 IE=7
).
반면 에뮬레이트 모드는 IE에게 <!DOCTYPE>
페이지의 지시문 을 따르도록 선택하고 표준 모드는 선택한 버전을 기반으로하며 쿼크 모드는IE=5
content
속성에 가능한 값은 다음 과 같습니다.
content="IE=5"
content="IE=7"
content="IE=EmulateIE7"
content="IE=8"
content="IE=EmulateIE8"
content="IE=9"
content="IE=EmulateIE9"
content="IE=edge"
인트라넷 영역의 페이지로 작업하는 경우 IE9는 수행하는 작업에 관계없이 IE7 Compat 모드로 전환 될 수 있습니다.
이는 모든 인트라넷 사이트가 호환 모드에서 실행되어야한다는 IE 호환성 설정의 설정 때문입니다. 그룹 정책을 통해이를 해제하거나 (IE에서 일반 선택 해제) 다음을 설정할 수 있습니다.
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
이것은 (다른 답변에서 자세히 설명 된 것처럼) 작동하지만 처음에는 그렇게 나타나지 않을 수 있습니다 . 스타일 시트가 선언되기 전에 와야합니다 . 그렇지 않으면 무시됩니다.
관련 질문에 대한 이 답변 에서 제안한대로 Web.Config 파일에서 "가장자리"모드를 설정할 수 있습니다. 이렇게하면 개별 페이지에 삽입 할 필요없이 응용 프로그램에서 반환 된 모든 HTML에 적용됩니다.
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=edge" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
IIS 서버, 전체 웹 사이트 또는 특정 응용 프로그램에 대해 IIS 관리자 를 사용하여 "HTTP 응답 헤더"를 수정하여 동일한 단계를 수행 할 수도 있습니다 .
메타 태그 솔루션은 우리에게 효과가 없었지만 응답 헤더에서 설정하면 다음과 같습니다.
header('X-UA-Compatible: IE=edge,chrome=1');
chrome=1
특성 설명 stackoverflow.com/a/22059516/368691 . Chrome 프레임이 사용 중지되었습니다. blog.chromium.org/2013/06/retiring-chrome-frame.html
최근의 경험을 바탕으로이 주제에 대한 몇 가지 참고 사항이 있습니다. 대학 8은 IE 8이 모든 인트라넷 사이트에 대해 호환 모드로 설정된 랩톱을 발급합니다. 내 사이트에서 제공하는 페이지에 대해이 모드를 비활성화하기 위해 메타 태그를 추가하려고했지만 IE는이 태그를 일관되게 무시했습니다. 랜스가 자신의 게시물에서 언급했듯이 응답 헤더를 추가하면이 문제가 해결되었습니다. 이것은 HTML5 상용구 방법을 기반으로 헤더를 설정하는 방법입니다.
<IfModule mod_headers.c>
Header set X-UA-Compatible "IE=edge,chrome=1"
# mod_headers can't match by content-type, but we don't want to send this header on *everything*...
<FilesMatch "\.(appcache|crx|css|eot|gif|htc|ico|jpe?g|js|m4a|m4v|manifest|mp4|oex|oga|ogg|ogv|otf|pdf|png|safariextz|svg|svgz|ttf|vcf|webm|webp|woff|xml|xpi)$">
Header unset X-UA-Compatible
</FilesMatch>
</IfModule>
이 헤더를 실제로 보내려면 Apache에서 mod_headers가 켜져 있는지 확인해야합니다. 이 모드를 켜고 싶다면 PHP를 실행할 수있는 페이지에 넣으십시오 :
<pre>
<?php
print_r(apache_get_modules());
?>
</pre>
IE8은 intERnet의 표준 모드와 intRAnet의 쿼크 모드로 기본 설정됩니다. doctype을 xhtml transitional로 설정하면 HTML 메타 태그가 무시됩니다. 해결책은 코드에 HTTP 헤더를 추가하는 것입니다. 이것은 우리를 위해 일했습니다. 이제 인트라넷 사이트는 IE8이 앱을 표준 모드로 렌더링하도록 강제하고 있습니다.
기본 페이지 클래스 (ASP.net C #)의 PageInit에 추가됨 :
Response.AddHeader("X-UA-Compatible", "IE=EmulateIE8");
참조 : http://ilia.ws/archives/196-IE8-X-UA-Compatible-Rant.html
이는 모든 인트라넷 사이트가 호환 모드에서 실행되어야한다는 IE 호환성 설정의 설정 때문입니다. 그룹 정책을 통해이를 해제하거나 (IE에서 일반 선택 해제) 다음을 설정할 수 있습니다.
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
분명히 호환성보기 설정을 그룹 정책으로 변경할 수는 없지만 레지스트리에서 변경 될 수있는 것입니다.이 메타 태그가 제대로 작동합니다. 필요한 속성을 HTML 양식의 일부로 작동시켜야했습니다. 크롬과 파이어 폭스에서는 작동했지만 IE에서는 작동하지 않았습니다.
다음은 각각의 개별 HTML 5 요소를 지원하는 브라우저에 대한 좋은 시각입니다.
하나의 공통 분모 인 Google 크롬은 모든 것을 지원합니다. 이것이 도움이되기를 바랍니다.
태그 아래 첫 번째 항목으로 삽입하십시오.
이렇게하면 IE가 실제 버전의 IE에서 페이지를 렌더링하도록하고 브라우저 "모드 설정"을 무시합니다. 이것은 개발자 도구에서 설정할 수 있으며 테스트하기 위해 이전 버전의 IE로 변경하십시오.이를 무시하고 페이지는 정확히 동일하게 보입니다.
각 개별 웹 페이지가 선택된 컨텐츠를로드하고 asp.net을 사용하려는 경우. Views> shared> Layout.cshtml의 제목 태그 아래 첫 번째 태그로 적용하십시오.
팁