developer tip

JavaScript로 Internet Explorer 11 만 타겟팅하려면 어떻게해야합니까?

copycodes 2021. 1. 6. 08:31
반응형

JavaScript로 Internet Explorer 11 만 타겟팅하려면 어떻게해야합니까?


JavaScript로 IE11만을 대상으로하는 가장 오류가 발생하기 쉬운 방법은 무엇입니까?

참고 :이 작업은 분석을 위해서만 수행하거나 사용자에게 사용중인 브라우저를 알려야합니다. 다른 모든 것에는 기능 감지가 있습니다.


IE 11의 사용자 에이전트 문자열은 현재 다음과 같습니다.

Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko

Windows 10 예 :

Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko

즉, 버전 11.xx에 대해 간단히 테스트 할 수 있습니다.

var isIE11 = /Trident.*rv[ :]*11\./.test(navigator.userAgent);

으로 IE10 사용자 에이전트이었다

Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)

이제 Trident/X실제 버전 관리가되어야 한다는 사실에 내기를하는 것도 안전 할 것입니다 .


IE11은 UA 문자열에 "Trident"를 유지하지만 MSIE를 삭제합니다. 브라우저를 감지하는 간단한 방법은 IE11 이상 (IE12, IE13 등)입니다.

var isAtLeastIE11 = !!(navigator.userAgent.match(/Trident/) && !navigator.userAgent.match(/MSIE/));

당신이 원하는 경우 IE11을 (당신이 IE의 향후 버전이 일치하지 않음),이 작업을 수행 :

var isIE11 = !!(navigator.userAgent.match(/Trident/) && navigator.userAgent.match(/rv[ :]11/));

var isIE11 = !!navigator.userAgent.match(/Trident\/7.0; rv 11/);

출처 : http://www.nczonline.net/blog/2013/07/02/internet-explorer-11-dont-call-me-ie/


다음 패턴을 사용하여 모든 IE 브라우저를 대상으로합니다. IE 11 만 필요한 경우 단축 할 수 있습니다.

 /msie|trident|edge/g.test(navigator.userAgent.toLowerCase());

행운을 빕니다!

프레드릭


이 시도,

navigator.sayswho= (function(){
   var N= navigator.appName, ua= navigator.userAgent, tem;
   var M= ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);
   if(M && (tem= ua.match(/version\/([\.\d]+)/i))!= null) M[2]= tem[1];
   M= M? [M[1], M[2]]: [N, navigator.appVersion,'-?'];
   return M;
})();

JavaScript의 브라우저 감지 소스 ?

IE = 11 업데이트

이것을 사용하십시오

var isIE11 = navigator.userAgent.match(/Trident\/7.0; rv 11.0/);

http://msdn.microsoft.com/en-us/library/ie/bg182625%28v=vs.85%29.aspx 읽기


ieIE 버전으로 설정 되거나없는 경우 0으로 설정됩니다. 1에서 11까지 작동하지만 Microsoft가 Trident 엔진을 삭제하면 향후 버전을 감지하지 못할 수 있습니다.

var ie = 0;
try { ie = navigator.userAgent.match( /(MSIE |Trident.*rv[ :])([0-9]+)/ )[ 2 ]; }
catch(e){}

여기에 나와 관련된 더 자세한 답변에 관심이있을 수도 있습니다 .


다음은 모든 브라우저를 감지하는 데 사용할 수있는 스크립트입니다.

<script>

  // Opera
  var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;

  // Firefox 1.0+
  var isFirefox = typeof InstallTrigger !== 'undefined';

  // Safari 3.0+ "[object HTMLElementConstructor]" 
  var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || safari.pushNotification);

  // Internet Explorer 6-11
  var isIE = /*@cc_on!@*/false || !!document.documentMode;

  // Edge 20+
  var isEdge = !isIE && !!window.StyleMedia;

  // Chrome 1+
  var isChrome = !!window.chrome && !!window.chrome.webstore;

  // Blink engine detection
  var isBlink = (isChrome || isOpera) && !!window.CSS;

  if (isFirefox==true) {
    alert(isFirefox)
    $('.container-fluid').css({"overflow-y":"auto","height":"150%"});  
  }

</script>

ReferenceURL : https://stackoverflow.com/questions/17447373/how-can-i-target-only-internet-explorer-11-with-javascript

반응형