IE 11에는 다른 모든 IE와 다른 사용자 에이전트 문자열이 있음을 알고 있습니다.
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko
이 질문에 대한 답변이 지정된 IE 11을 감지하려고했습니다. ‘
Thats !!navigator.userAgent.match(/Trident\/7\./)
하지만 오류가 발생합니다
Object not found and needs to be re-evaluated.
그런 다음 IE11에서 개발자 콘솔을 열고 미리 정의 된 일부 자바 스크립트 개체에 액세스하려고 시도했지만 여전히 동일한 오류가 발생합니다.
나는 시도했다
navigator.userAgent
window.navigator
console.log('test');
누구든지 그것에 대해 어떤 생각이 있습니까?
답변
2016 년 11 월 18 일 수정
이 코드도 작동합니다 ( ActiveX를 사용하지 않고 다른 솔루션을 선호하는 사용자를 위해 )
var isIE11 = !!window.MSInputMethodContext && !!document.documentMode;
// true on IE11
// false on Edge and other IEs/browsers.
원래 답변
Ie11을 확인하려면 다음을 사용할 수 있습니다.
!(window.ActiveXObject) && "ActiveXObject" in window
IE의 모든 VMS가 있습니다.
주의 사항 : IE11에서는 작동하지 않습니다.
여기에서 볼 수 있듯이 true를 반환합니다.
그래서 우리가 뭘 할 수 있지 :
분명히 그들은 머신 비트 공간을 추가했습니다.
ie11 :
"Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; rv:11.0) like Gecko"
ie12 :
"Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; rv:11.0) like Gecko"
그래서 우리는 할 수 있습니다 :
/x64|x32/ig.test(window.navigator.userAgent)
이것은 ie11에 대해서만 true를 반환합니다.
답변
MSIE (버전 6에서 11까지)를 빠르게 검색하려면 :
if(navigator.userAgent.indexOf('MSIE')!==-1
|| navigator.appVersion.indexOf('Trident/') > -1){
/* Microsoft Internet Explorer detected in. */
}
답변
IE의 버전 9, 10 및 11을 감지하기 위해 다음 기능을 사용합니다.
function ieVersion() {
var ua = window.navigator.userAgent;
if (ua.indexOf("Trident/7.0") > -1)
return 11;
else if (ua.indexOf("Trident/6.0") > -1)
return 10;
else if (ua.indexOf("Trident/5.0") > -1)
return 9;
else
return 0; // not IE9, 10 or 11
}
답변
위의 모든 답변은 창이나 탐색기가 없다는 사실을 무시합니다. 🙂
그런 다음 IE11에서 개발자 콘솔을 열었습니다.
그리고 그것이 말하는 곳입니다
개체를 찾을 수 없으며 다시 평가해야합니다.
네비게이터, 창, 콘솔, 그들 중 아무것도 존재하지 않으며 재평가가 필요합니다. 나는 에뮬레이션에서 그것을 가지고 있습니다. 콘솔을 몇 번 닫고 엽니 다.
답변
IE 11 만 감지하는 매우 안전하고 간결한 방법 은
if(window.msCrypto) { /* I'm IE11 for sure */ }
또는 이와 비슷한
var IE11= !!window.msCrypto;
msCrypto
window.crypto
객체 의 접두사 버전이며 IE 11에서만 구현됩니다.
https://developer.mozilla.org/en-US/docs/Web/API/Window/crypto
답변
그리고 이것을 구현하는 방법
<script type="text/javascript">
!(window.ActiveXObject) && "ActiveXObject"
function isIE11(){
return !!navigator.userAgent.match(/Trident.*rv[ :]*11\./);
}
</script>
답변
좋아, 간단하고 IE11 및 IE 11 버전 이하
browserIsIE = navigator.userAgent.toUpperCase().indexOf("TRIDENT/") != -1 || navigator.userAgent.toUpperCase().indexOf("MSIE") != -1;
navigator.userAgent.toUpperCase().indexOf("TRIDENT/") != -1
IE 11 버전의
navigator.userAgent.toUpperCase().indexOf("MSIE") != -1
경우 IE 11 미만 버전
browserIsIE = navigator.userAgent.toUpperCase().indexOf("TRIDENT/") != -1 || navigator.userAgent.toUpperCase().indexOf("MSIE") != -1;
console.log('Is IE Browser : '+ browserIsIE)