ExtJS 3이 IE9에서 제대로 작동하지 않는 간단한 해결 방법

2481 단어 ExtJs
문제가 발생했습니다. 우리의 프로젝트는 ExtJS로 만들었지만 IE9에서는 거의 사용할 수 없습니다.Bug를 제거한 지 반나절이 지나서야 ExtJS가 IE9에서 제대로 작동하지 않는다는 것을 알 수 있습니다.사소한 문제들을 버리고 가장 전형적인 것은 트리패널은 사용할 수 없고 노드가 켜지지 않는다는 것이다. 구글은 이 버그를 발표했지만 아직 완벽한 해결 방안이 없는 것 같다.
 
ExtJS를 바꾸는 대가가 너무 커서 IE9을 호환성 모드로 실행하는 사고방식을 바꾸는 것이 낫습니다. ExtJS는 전혀 문제없습니다.그래서 페이지를 불러올 때 IE9에 호환성 모드를 실행하는 방법을 궁리했다.자, IE 홈페이지에서 관련 정보를 제공하겠습니다.마이크로소프트의 MSDN은 여전히 괜찮다고 말할 수 밖에 없다. 비록 브라우저가 줄곧 그다지 잘하지는 않지만...
 
방법은 매우 간단하다. 헤드 라벨의 첫 줄에 다음과 같은 메타 라벨을 넣는다.
    <!DOCTYPE html>  
    <html>  
      <head>  
        <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />  
      </head>  
      <body>  
        ..  
      </body>  
    </html>  

이렇게 하면 IE9은 IE8의 문서 모델로 html를 해석할 것이다.가장 좋은 것은 이 메타를 헤드의 첫 줄에 놓는 것이다. 그렇지 않으면 효과가 없을 것이다.실제로 MSDN 문서는 제목과 메타의 모든 태그를 제외하고는 헤드에 넣으면 된다고 했지만 제가 시도해 봤는데 소용이 없는 것 같아서 보험을 위해 첫 번째로 넣으세요.다음은 MSDN 문서의 원어입니다.
it must appear in the header of the webpage (the HEAD section) before all other elements except for the title element and other meta elements. 

또한 IE9이 어떤 모드에서 실행되는지 잘 모르면document를 사용할 수 있습니다.documentMode에서 IE9의 실행 모드를 볼 수 있습니다. IE9 표준 모드라면 9, IE8 모드면 8을 되돌려줍니다.이렇게 유추하다.
 
주: 엄격하게 말하자면, 이 방법은 사실상 문서 모드 (document mode) 를 바꾸는 것이지, 브라우저 모드 (browser mode) 를 바꾸는 것이 아니다.실제로 IE9의 호환성 모드는 브라우저 모드입니다.이 두 가지 차이에 관심이 있는 사람은 MSDN을 보러 갈 수 있다.

참조 문서:


Define Document Compability
이 소개는 비교적 전면적이고 호환성 모델이 무엇인지, 어떻게 판단하는지, 어떻게 설정하는지와 관련이 있으며, 심지어 웹 서버에서 호환성 모델을 지정하는 방법도 포함된다.
IE's Compability Features for Site Developers
몇 가지 브라우저 모드(browser mode)와 문서 모드(document mode)를 소개했다.나는 주로 이 안의 몇 가지 문서 모델을 보고 구별한다.
 
참고:http://darkbaby123.iteye.com/blog/1017580

좋은 웹페이지 즐겨찾기