[IE] userAgent : Trident 로 값 변경 후 IE7에서 오류나는 문제

[IE] userAgent : Trident 로 값 변경 후 IE7에서 오류나는 문제

IE 11이 출시한 이후로 기존 userAgent를 MSIE에서 Trident로 변경해야 하는 이슈가 있었습니다. 하지만 변경 후 IE7에서 userAgent가 IE로 식별하지 못하는 문제가 발생했습니다.

그 이유는 userAgent에 찍히는 값을 확인해보면 쉽게 알 수 있는데 Trident 문자는 IE8이상에서 존재했고 IE7이하에서는 존재하지 않았습니다. 때문에 IE7은 IE로 인식하지 못해 스크립트 동작에 문제가 생깁니다.

그렇다면 이 문제에 대한 처리를 해야할텐데요.. 저는 이런 방법을 사용했습니다.

if (navigator.appName == 'Microsoft Internet Explorer') {
   // IE 계열 브라우저인 경우
   if(window.navigator.userAgent.search(/trident/i) != -1) {
      alert('IE 8 이상');
   }else{
      alert('IE 7 이하');
   }
}

appName으로 우선 인터넷 익스플로러인지 판별을 해준 다음 trident 문자열의 존재 여부에 따라 IE 버전을 분기시켜 줍니다. IE 8 이상 구문에서는 trident로 7이하에서는 기존과 같은 방식의 msie로 분기 시켜주면 되겠습니다.

%d 블로거가 이것을 좋아합니다: