Programing

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

lottogame 2020. 5. 10. 10:14
반응형

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


방금 IE9 베타를 설치했으며 내가 만든 특정 사이트 (HTML5)에 IE9가 수동으로 지시하지 않는 한 호환 모드로 이동합니다. 웹 사이트의 여러 부분을 제거하려고 시도했지만 변경하지 않았습니다. 모든 CSS 포함 제거를 포함합니다. 저의 다른 웹 사이트에서는 괜찮습니다.

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

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

둘 다 같은 것을 사용합니다 doctype. 해당 사이트는 동일한 기본 템플릿 (인코딩, 메타 태그, doctype 및 동일한 자바 스크립트)을 사용하여 공통점이 많습니다 (외관 제외).

누군가 나에게 답이 있다면 좋을 것입니다! IE7 모드로 렌더링되는 HTML5 웹 사이트는 꽤 ... 불충분합니다.


IE9 documentMode에서 작동합니다.

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.Net 앱의 경우 웹 페이지, web.config 또는 코드 숨김에 "X-UA-Compatible"태그를 추가하면 아무런 차이가 없습니다.

우리에게 도움이 유일한 것은 IE8에서이 설정을 수동으로 해제하는 것입니다.

여기에 이미지 설명을 입력하십시오

(한숨.)

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

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

내 꺼려 솔루션에왔다 테스트 브라우저, 그것은 유효하지의 경우 사용자에게이 메시지를 표시 (캔버스를 만들고,이 유효인지 테스트하여) HTML 5 지원이 있는지 여부를 :

여기에 이미지 설명을 입력하십시오

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

또는 사용자가 Chrome을 사용하도록합니다. ;-)


The site at http://www.HTML-5.com/index.html does have the X-UA-Compatible meta tag but still goes into Compatibility View as indicated by the "torn page" icon in the address bar. How do you get the menu option to force IE 9 (Final Version 9.0.8112.16421) to render a page in Standards Mode? I tried right clicking that torn page icon as well as the "Alt" key trick to display the additional menu options mentioned by Rene Geuze, but those didn't work.


As an aside on more modern websites, if you are using conditional statements on your html tag as per boilerplate, this will for some reason cause ie9 to default to compatibility mode. The fix here is to move your conditional statements off the html tag and add them to the body tag, in other words out of the head section. That way you can still use those classes in your style sheet to target older browsers.


Looks fine to me:

대체 텍스트

You're sure you didn't on the settings globally or something? This is a clean installation of the beta on Windows 7. The developer tools report that the page is defaulting to IE9 Standard Mode.


I recently had to resolve this issue and here's what I did :

First of all, this solution is around tuning Apache server.

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

  • httpd.conf 찾기 / 열기
  • 주석 해제 / 또는 다음 줄 추가

    LoadModule headers_module modules/mod_headers.so
    
  • 다음 줄을 추가하십시오

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

  • IE9로 페이지를 탐색 하거나 wireshark 또는 fiddler 와 같은 도구를 사용하거나 IE 개발자 도구를 사용하여 헤더가 있는지 확인하십시오.

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

반응형