사용자 에이전트 문자열을 통해 IE7 또는 IE8로 식별되는 브라우저가 실제로 해당 브라우저인지 아니면 7 또는 8 호환성 모드의 IE9인지 알아야합니다.
사용자 에이전트 문자열에서 볼 수 있듯이 IE7 호환 모드의 IE9는 실제 IE7과 동일한 문자열을 제공합니다. 위장 된 "정말"IE9인지 테스트 할 수있는 추가 속성 / 요소 / 객체가 있습니까?
내 스크립트가로드 된 페이지가 특수한 설정을 강요하거나 특정 설정을 강요 할 수 있으므로 문서 모드가 도움이되지 않는다고 가정합니다.
IE9가 7, 8 또는 9 모드에 관계없이 존재하고 테스트 할 수있는 속성을 갖기를 바랍니다.
추가하기 위해 수정…
좋아, 이제 내가 어디로 잘못 가고 있는지 알 수 있습니다. "브라우저 모드"드롭 다운을 사용하여 IE8과 IE7로 전환하고 이것이 각각 "IE8 호환 모드"와 "IE7 호환 모드"라고 생각했습니다. 물론 이것은 사실이 아닙니다. 개발자 도구의 브라우저 모드는 실제로 이전 브라우저와 "같이되도록"전환하므로 원래 사용자 에이전트 문자열이보고되는 것이 옳습니다.
브라우저 모드를 IE9 또는 IE9 호환성 상태로두고 대신 문서 모드 드롭 다운 변형을 시도하면 실제로 "Trident / 5.0"이 8 가지 조합 (2 개의 브라우저 모드 및 4 개의 문서 모드)에 표시됩니다. IE7과 IE8은 실제로 (시뮬레이션 된) IE7과 IE8이기 때문에 브라우저 모드 IE7과 IE8을 선택하지 않아도됩니다.
따라서 페이지, 개발자가 아닌 사용자, 메타 태그 또는 Microsoft의 호환성 목록이 IE9를 식별 할 수없는 상태로 만들 수있는 방법은 없습니다.
사용 if(navigator.userAgent.indexOf("Trident/5")>-1)
만으로 충분합니다.
걱정하지 마세요. 스타일, 서식, 논리 또는 페이지 콘텐츠가 아닙니다. 나는 이러한 것들을 위해 기능 감지를 사용합니다. IE9를 감지하고 (어떤 모드에 있든 관계없이) 페이지가 아닌 콘텐츠 결정을 내리면됩니다.
귀하의 제안과 링크를 통해 답변을 이끌어 주셔서 감사합니다.