Я знаю, что IE 11 имеет другую строку пользовательского агента, чем все другие IE
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko
Я попытался обнаружить IE 11 с указанием ответа на этот вопрос '
Jquery не может обнаружить IE 11
Это !!navigator.userAgent.match(/Trident\/7\./)
Но я получаю ошибку
Object not found and needs to be re-evaluated.
Затем я открыл консоль разработчика в IE11 и попытался получить доступ к некоторым предопределенным объектам javascript, но все равно получаю ту же ошибку.
я пытался
navigator.userAgent
window.navigator
console.log('test');
Кто-нибудь знает об этом?
javascript
internet-explorer
internet-explorer-11
Микдад Али
источник
источник
Object not found and needs to be re-evaluated.
Ответы:
Изменить 18 ноября 2016
Этот код также работает ( для тех, кто предпочитает другое решение, без использования ActiveX )
Оригинальный ответ
Чтобы проверить Ie11, вы можете использовать это: (проверено)
(или запустите это )
!(window.ActiveXObject) && "ActiveXObject" in window
У меня все VMS IE:
Примечание: это не работает для IE11:
как вы можете видеть здесь, он возвращает true:
Так что мы можем сделать :
Видимо добавили машинное битовое пространство:
ie11:
ie12:
так что мы можем сделать:
это вернет истину только для ie11.
источник
x64
возвращает и Chrome, и Edgewindow.MSInputMethodContext
.Чтобы быстро обнаружить MSIE (с 6 по 11 версии):
источник
indexOf()
будет> -1
?Я использую следующую функцию для обнаружения IE версий 9, 10 и 11:
источник
Все приведенные выше ответы игнорируют тот факт, что вы упоминаете, что у вас нет окна или навигатора :-)
и вот где он говорит
и навигатор, окно, консоль, ни один из них не существует и требует повторной оценки. У меня было это в эмуляции. просто закройте и откройте консоль несколько раз.
источник
Достаточно безопасный и лаконичный способ обнаружить только 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
источник
/x64|x32/ig.test(window.navigator.userAgent)
относится и к Firefox!И как я это реализовал
источник
&& "ActiveXObject" in window
. В-третьих: в чем фокус с двойным отрицанием!!
?Хорошо, попробуйте это, просто и для IE11 и IE ниже 11 версии
navigator.userAgent.toUpperCase().indexOf("TRIDENT/") != -1
для версии IE 11navigator.userAgent.toUpperCase().indexOf("MSIE") != -1
для версии IE ниже 11источник
Эта ссылка была полезной . Он содержит код javascript для обнаружения всех версий IE до IE11. Я тестировал скрипт с эмулятором IE11. Чтобы найти эмулятор IE11, щелкните правой кнопкой мыши в веб-браузере и выберите «Проверить элемент». В левом нижнем углу страницы прокрутите панель навигации вниз и щелкните значок на рабочем столе. Выпадающий список «Строка пользовательского агента» содержит параметры для эмуляции IE6-11.
Оно работает. Я просто использовал его за несколько минут до написания этого ответа. Не могу публиковать снимки - недостаточно репутации.
Это код - перейдите по ссылке, чтобы просмотреть его еще раз:
источник
Использование этого RegExp, похоже, работает для IE 10 и IE 11:
У меня нет IE старше 10, чтобы проверить это.
источник
Используйте навигатор: -
Это
navigator
объект, который содержит всю информацию о браузере клиентского компьютера.navigator.appName
возвращает имя браузера клиентской машины.источник
Я обнаружил, что IE11 предоставляет несколько строк пользовательского агента в разных средах.
Вместо того, чтобы полагаться на
MSIE
и другие подходы, лучше полагаться наTrident
версиюНадеюсь это поможет :)
источник