Microsoft에서 IE(Internet Explorer) 마지막 버전인 11을 끝으로 더 상위 버전은 만들지 않고

이후부터는 Edge 브라우저로 가기로 했는데, 우리나라에서는 아직도 IE 7이 표준인 환경이 많다.

그것은 당연히, ActiveX에 가장 최적화 되어 있는 버전이기 때문이다.


문제는, IE 7에서는 최근 HTML5 + CSS3로 표준화되고 있는 상당수 웹 표준들이 먹히지 않는다는 점이다.

최신 웹 표준에 따라 웹 페이지를 만든 다음 IE 7에서 열어 보면 UI가 깨지는 것은 물론,

온갖 스크립트 오류들을 만나게 된다. 그런 것들을 일일이 크로스 브라우징 스크립트 기법을 동원해 손을 보면

물론 정상 동작되도록 만들 수는 있다. 시쳇말로 ROI가 나오지 않을 뿐.


>> 참조: 크로스 브라우징(Cross Browsing) HTML, 스크립트로 수정하기

(예전에 이 블로그에 해당 수정 방법을 하나하나 적어본 적이 있다.)




최신 웹 사이트들은 대부분 최신 웹 표준에 따라 개발하고 있다.

HTML5를 적극적으로 쓰건 쓰지 않건 더 이상 IE 7과 같은 구버전 브라우저에 호환성을 맞춰주지는 않는다.

따라서 IE 컨트롤을 Embedding해서 웹 브라우징을 하는 도구나 프로그램을 만드는 입장에서는

바로 이 부분에서 한 가지 큰 문제가 생긴다. IE 컨트롤의 기본 동작 모드가 IE 7 모드이기 때문이다.

즉, IE 컨트롤을 Embedding해서 사용하는 환경은 기본적으로 IE 7 브라우저를 사용하고 있는 셈이다.


단적인 예로, 아웃룩에 Add-in으로 개발해서 보통 많이 사용하는 조직도나 대용량 첨부파일 업로드 같은 경우가

바로 이러한 IE 컨트롤 Embedded 환경이 되겠다.


웹 사이트가 이런 환경까지 고려해서 META 태그로 IE 버전 호환성을 명시해주고 있다면 별 문제는 없다.

실제 클라이언트에 설치된 IE 브라우저가 10 이상의 버전이라면 웹 페이지에 명시된 호환성 버전에 따라

문제 없이 정상 동작하게 될 테니까. (그래서 위에 "기본적으로"라고 썼다.)


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


META 태그 말고, 일괄적으로 웹 서버에서 "X-UA-Compatible" 헤더를 내려줘도 효과는 동일하다.


문제는 웹 사이트에 이런 설정이 적용되어 있지 않은 경우가 되겠다.

즉, 브라우저 기본 모드로 동작하게 되는 상황이면서 웹 페이지 자체는 최신 웹 표준 기반으로 만들어져 있다면

위에서도 얘기했듯 UI가 깨지는 것은 물론, 온갖 스크립트 오류들을 만나게 된다.


다행히 웹 사이트나 웹 페이지를 수정할 수 있는 상황이라면 그렇게 처리하면 된다.

그러나, 웹 사이트에 수정해야 할 페이지 숫자가 과도하게 많거나, 또는 일괄 처리하기 어렵거나,

또는 아예 수정이 어려운 경우라면?




Microsoft에서 이러한 경우를 위해 클라이언트 설정 변경 방법을 제공하고 있다.


>> 참조: https://msdn.microsoft.com/en-us/library/ee330730(v=vs.85).aspx#browser_emulation


Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION]

"outlook.exe"=dword:00002710


[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]

"outlook.exe"=dword:00002710


레지스트리로 위 URL에 나와 있는 IE 브라우저 버전 중 적절한 버전(최소 버전)을 설정해주면

해당 IE 버전이 기본 버전이 된다. 위 예는 아웃룩 프로그램을 IE 10 Standard 모드로 설정한 것이다.






Posted by 떼르미
,


자바스크립트를 허용해주세요!
Please Enable JavaScript![ Enable JavaScript ]