>  기사  >  웹 프론트엔드  >  IE11에서 navigator.userAgent 변경 사항의 예제 코드

IE11에서 navigator.userAgent 변경 사항의 예제 코드

零下一度
零下一度원래의
2017-06-30 10:15:361441검색

원래 브라우저가 IE인지 판단할 때 navigator.userAgent에서 항상 MSIE를 사용할 수 있었지만 IE11이 변경되어 userAgent에는 더 이상 MSIE 필드가 포함되지 않습니다.

실제 프로젝트에서는 콘솔의 오류 보고와 관련된 유사한 문제가 발생했습니다. , 브라우저 모델을 확인할 때 구체적인 방법은 다음과 같습니다.

  function getBrowserInfo(){

  var Sys = {};

  var ua = navigator.userAgent.toLowersCase();

  var re = /( msie 나는 파이어폭스 | 오페라 | 버전).*?([d.]+)/;

   var m = ua.match(re);

   Sys.browser = m[1].replace(/version/ , "'safari'");

  Sys.ver = m[2];

   return;

  }

   이 방법에 따르면 Sys에서 특정 브라우저 정보를 얻을 수 있고, 이를 직접 호출할 수 있습니다.

 그런데 프로덕션 환경에서 갑자기 로그인이 되지 않습니다. 사용자 피드백은 IE11을 작업에 사용하므로 IE11을 직접 테스트에 사용한다는 것입니다.

  【 SCRIPT5007: 얻을 수 없습니다. 정의되지 않음 또는 null 참조 속성" 1” ]

   오류 표시 위치에 따라 정규 매칭 후 위치 지정 후 m을 얻을 수 없습니다.

  해결 후 ie11 브라우저 navigator.userAgent가 변경되어 구체적으로 다음과 같이 변경되었습니다.

  "Mozilla/ 5.0(Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Shuame; rv:11.0) like Gecko ";

  따라서 일반 판단을 바꾸십시오: var re = /(msie I firefox | chrome | Opera | version | rv:).*?([d.]+)/;

이렇게 하면 문제가 해결되고, ie11 호환성이 크게 개선되었으며, 앞으로도 계속 개선해야 할 부분이 많습니다. . . . . . . . . . . . . . . . . . .

위 내용은 IE11에서 navigator.userAgent 변경 사항의 예제 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.