programing

웹 사이트에서 IE9이 호환 모드로 전환되는 이유는 무엇입니까?

magicmemo 2023. 8. 24. 21:58
반응형

웹 사이트에서 IE9이 호환 모드로 전환되는 이유는 무엇입니까?

IE9 베타를 방금 설치했는데, 제가 만든 특정 사이트(HTML5)에서 IE9이 호환성 모드로 이동합니다. 수동으로 그렇지 않으면 호환성 모드로 전환됩니다.저는 웹사이트의 여러 부분을 제거하려고 시도했지만 변경되지 않았습니다.모든 CSS를 제거하는 것을 포함합니다.저의 다른 웹사이트에서는 잘 되고 있습니다.

또한 IE9가 사용자 설정을 기억하므로 수동으로 설정하지 마십시오. 사용자 설정을 자동으로 되돌릴 수 없습니다(또는 개인 검색 및 캐시 비우기를 통해서도 방법을 찾지 못했습니다).

어쨌든 호환성 모드로 점프하는 사이트: http://alliancesatwar.com/guide/
정확하게 렌더링되는 하나: http://geuze.name/basement/ (1개 이상의 하이퍼링크를 게시할 수 없음)

둘 다 동일하게 사용합니다.doctype 것 모 든 한 기본 이러한 사이트는 동일한 기본 템플릿(인코딩, 메타 태그, doctype 및 동일한 javascript)을 사용하여 (외관과는 별도로) 많은 공통점을 가지고 있습니다.

누군가 나에게 대답을 해준다면 정말 좋을 것입니다!IE7 모드로 렌더링하는 HTML5 웹사이트가 이쁘네요...변변찮은.

IE9 문서 모드에서 작동합니다.

없이X-UA-Compatible명시적인 documentMode를 설정하기 위한 헤더/메타, 다음을 기반으로 한 모드를 얻을 수 있습니다.

  • 사용자가 이전에 해당 도메인에서 '호환성 보기' 버튼을 클릭한 적이 있는지 여부
  • 또한 사이트의 다른 콘텐츠로 인해 IE8/9 렌더러가 충돌하여 이전 렌더러로 되돌아가는 현상이 자동으로 발생했는지 여부.
  • 사용자가 기본적으로 모든 사이트를 호환성 보기로 선택했는지 여부.
  • IE가 사이트가 인트라넷에 있다고 생각하여 호환성 보기로 기본 설정하는지 여부.
  • 문제의 사이트가 호환성 보기가 필요한 Microsoft의 자체 웹 사이트 목록에 있는지 여부를 나타냅니다.

IE 메뉴에서 '도구 -> 호환성 보기 설정'에서 설정을 변경할 수 있습니다.물론 그 메뉴는 이제 몰래 숨겨져 있기 때문에 Alt를 누르기 전에는 볼 수 없습니다.

사이트 작성자는 사이트가 표준(다른 브라우저에서 잘 렌더링되고 기능 탐색을 사용하여 사용할 브라우저 해결 방법을 결정함)을 준수한다고 확신하는 경우 다음을 사용하는 것이 좋습니다.

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

또는 HTTP 헤더:

X-UA-Compatible: IE=Edge

사용 중인 IE 버전을 최신 렌더러로 가져옵니다.

내가 넣었습니다

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

다음에 제일 먼저

<head>

(어디선가 읽었는데 기억이 안 나요)

그것이 효과가 있었다는 것을 믿을 수 없었습니다!!

IE가 IE9 표준 모드에서 렌더링하도록 하려면 사용해야 합니다.

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

일부 상황에서는 IE9이 호환성 모드로 전환될 수 있습니다.기본적으로 인트라넷 사이트에서 이 문제가 발생할 수 있습니다.

이 의견을 별도의 StackOverflow 스레드에 게시했지만 여기서 반복할 가치가 있다고 생각했습니다.

사내 ASP를 위해서.넷앱은 웹 페이지, web.config 또는 코드백에 "X-UA-Compatible" 태그를 추가해도 전혀 차이가 없었습니다.

IE8에서 이 설정을 수동으로 해제한 이 유일하게 효과적이었습니다.

enter image description here

(하느님.)

이 문제는 인트라넷 사이트의 IE8 및 IE9에서만 발생하는 것으로 보입니다.외부 웹 사이트는 정상적으로 작동하고 올바른 버전의 IE8/9를 사용하지만 내부 웹 사이트의 경우 IE9에서 갑자기 IE7로 결정하고 HTML5를 지원하지 않습니다.

아니요, 저도 이 논리를 잘 이해하지 못합니다.

제가 꺼리는 해결책은 브라우저가 HTML5를 지원하는지 테스트하는 입니다(캔버스를 만들고 유효한지 테스트함). 유효하지 않으면 이 메시지를 사용자에게 표시합니다.

enter image description here

특별히 사용자 친화적인 것은 아니지만, 사용자가 이 성가신 설정을 끄도록 하는 것이 사내 HTML 5 웹 앱을 제대로 실행할 수 있는 유일한 방법인 것 같습니다.

아니면 사용자들이 크롬을 사용하도록 하세요. ;-)

http://www.HTML-5.com/index.html 사이트에는 X-UA-Compatible 메타 태그가 있지만 주소 표시줄의 "torned page" 아이콘에 표시된 대로 Compatibility View(호환성 보기)로 이동합니다.IE 9(Final Version 9.0.8112.16421)가 표준 모드에서 페이지를 렌더링하도록 강제하는 메뉴 옵션을 어떻게 구합니까?찢어진 페이지 아이콘과 "Alt" 키 트릭을 마우스 오른쪽 버튼으로 클릭하여 Rene Geuze가 언급한 추가 메뉴 옵션을 표시하려고 했지만 작동하지 않았습니다.

좀 더 현대적인 웹 사이트의 경우를 제외하고, 만약 당신이 상용판에 따라 html 태그에 조건문을 사용한다면, 이것은 어떤 이유에서인지 i9가 호환성 모드로 기본 설정되게 할 것입니다.여기서 해결책은 html 태그에서 조건문을 이동하여 본문 태그에 추가하는 것입니다. 즉, 머리 부분에서 벗어나는 것입니다.이렇게 하면 스타일시트에서 해당 클래스를 사용하여 이전 브라우저를 계속 대상으로 지정할 수 있습니다.

괜찮아 보여요.

alt text

전 세계적으로 설정을 하지 않은 것이 확실합니까?이것은 Windows 7에 베타 버전을 새로 설치한 것입니다.개발자 도구는 페이지가 IE9 표준 모드로 기본 설정되어 있다고 보고합니다.

저는 최근에 이 문제를 해결해야 했고 다음과 같이 했습니다.

우선, 이 솔루션은 Apache 서버를 튜닝하는 것입니다.

두 번째 주요 생각은 IE9에 버그가 있다는 것이며, 이 솔루션 대신 메타 태그가 작동하지 않는다는 것을 의미합니다.

  • httpd.conf 찾기/열기
  • 다음 행에 주석을 달거나 추가합니다.

    LoadModule headers_module modules/mod_headers.so
    
  • 다음 행을 추가합니다.

    <IfModule headers_module>
        Header set X-UA-Compatible: IE=EmulateIE8
    </IfModule>
    
  • Apache 서버를 저장/다시 시작합니다.

  • IE9로 페이지를 탐색하거나 wiresharkfiddler와 같은 도구를 사용하거나 IE 개발자 도구를 사용하여 헤더가 있는지 확인합니다.

언급URL : https://stackoverflow.com/questions/3726357/why-does-ie9-switch-to-compatibility-mode-on-my-website

반응형