카테고리 보관물: Tip

Windows8 메트로버전 IE10에서 ActiveX가 필요한 사이트 처리방법.

Windows8 메트로 버전 IE10에서는 ActiveX설치가 기본적으로 불가합니다.
“ActiveX가 필요한 사이트는 당장 어떻게 하냐?” 는 생각이 들텐데 그 사태를 방지하기 위해
Windows8은 IE10 메트로, 일반데스크탑 버전을 제공됩니다.
ActiveX을 사용해야하는 웹서비스는 데스크탑 버전IE10으로 전환해야하는데, 그 방법을 Microsoft blog에서 소개하고 있습니다.

  1. HTTP Header 추가 방법
    X-UA-Compatible: requiresActiveX=true
  2. META tag 추가 방법

ie10 activeX

위의 이미지처럼 데스크탑 버전의 IE10으로 전환하도록 유도하는 메시지가 브라우저에 출력됩니다.
IE가 조금씩 ActiveX설치 에서 벗어나 HTML5의 기능을 사용하도록 지지하고 있습니다.
하위 브라우저를 고려한다면 ActiveX을 모두 제거하는데 시간은 많이 걸리겠지만, 변화는 분명합니다.

JavaScript for detecting browser language (브라우저 언어 추출)

현재 브라우저 언어 설정값을 가져오는 방법에는 IE와 비IE(파폭, 크롬 등등)의 차이가 있습니다.
IE의 navigator객체에는 systemLanguage, userLanguage, browserLanguage 가 있어 마치 브라우저 언어를 보여줄 것 같지만,
전혀 그렇지 않아 사람을 혼란에 빠트리죠.

혼란을 주는 IE전용 속성

  • navigator.userLanguage OS의 제어판 – 국가 및 언어 – 입력언어를 나타낸다.
  • navigator.browserLanguage, navigator.systemLanguage OS의 제어판 – 국가 및 언어 – 표시언어의 반환한다.(browserLanguage와 systemLanguage의 차이는 발견하지 못했다.)
  • 모두 OS 언어 설정과 연관되어있다
$(function(){
  /*
   * 비 IE에서는 navigator.language 로 브라우저 현재 설정된 언어를 쉽게 알 수 있으나,
   * IE에서는 브라우저에 설정된 언어를 알 수 있는 navigator.language 속성이 없기때문에,
   * HTTP 응답 헤더값을 알아와야 하는 별도 처리가 슬프게도 필요 합니다.
   */
  var language;
  if (navigator.language) {
    // 비 IE에서 작동
    language = navigator.language
  } else {
    // IE에서 작동
    $.ajax({
      url: "http://ajaxhttpheaders.appspot.com",
      dataType: 'jsonp',
      success: function(headers) {
        language = headers['Accept-Language'];
        alert(language) // 요청 헤더에서 추출한 사용자 브라우저의 언어를 열거합니다.
      }
    });
  }
});