posted by 지긋이 2020. 2. 6. 11:20

참 난감한 일이다. 윈도우7에서 10으로 업그레이드 하면서 IE버전도 다 올라갔는데...
기존의 사이트 이용중 번거롭게 사용되는 일부 기능(?)오류가 생겼다.
그 중 대표적인게 팝업 뜬 후 함께 뜨는 빈 화면 팝업!
이걸 없앨 수 있는 방법을 여러가지 찾아봤는데 가장 좋은건 역시 호환성보기 설정에 URL(IP)을 추가
: ie 옵션 중 도구 > 호환성 보기 설정 > 이 웹 사이트 추가 에 해당 사이트IP 추가

고객사에도 설명을 했으나.. 역시나 모든 사용자에게 번거롭다라고 하여 설정을 강제로 변경할 것을 찾아보았다.
사이트 접속을 하면 강제적으로 호환성 보기 설정을 걸어버리는 것도 있으면 참 좋으련만 그건 없는듯?
(구글링에서는 찾지 못함. 아시는 분은 좀 알려주세요.)

ie 버전 강제 변경 처리
공통 영역 스크립트 단에 강제로 버전을 변경하는 것을 걸어버리는 방법이 가장 간단한 듯하다.
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>

버전별 확인
IE7: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1;...)
IE8: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0;...)
IE8 Compatibility View: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0;...)
IE9: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
IE9 Compatibility View: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0;...)

Agent 확인
var agentStr = navigator.userAgent;
        var mode;
        if (agentStr.indexOf("Trident/5.0") > -1) {
            if (agentStr.indexOf("MSIE 7.0") > -1)
                mode = "IE9 Compatibility View";
            else
                mode = "IE9";
        }
        else if (agentStr.indexOf("Trident/4.0") > -1) {
            if (agentStr.indexOf("MSIE 7.0") > -1)
                mode = "IE8 Compatibility View";
            else
                mode = "IE8";
        }
        else
            mode = "IE7";

        document.title = "Browser Mode:\t" + mode;
        //document.write(navigator.userAgent);

! 참고
https://social.msdn.microsoft.com/Forums/vstudio/en-US/ae715fd2-1ddd-46f7-8c26-9aed6b2103f1/how-to-detect-compatibility-mode-in-ie-any-version?forum=netfxjscript