Eu sei que o IE 11 tem uma sequência de agente de usuário diferente de todos os outros IE
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko
Tentei detectar o IE 11 com a resposta especificada para esta pergunta '
Jquery falha ao detectar o IE 11
Isso é !!navigator.userAgent.match(/Trident\/7\./)
Mas estou recebendo erro
Object not found and needs to be re-evaluated.
Então eu abri o console do desenvolvedor no IE11 e tentei acessar alguns objetos javascript predefinidos. Ainda estou recebendo o mesmo erro.
eu tentei
navigator.userAgent
window.navigator
console.log('test');
Alguém tem alguma idéia sobre isso?
javascript
internet-explorer
internet-explorer-11
Miqdad Ali
fonte
fonte
Object not found and needs to be re-evaluated.
Respostas:
Editar 18 Nov 2016
Este código também funciona ( para quem prefere outra solução, sem usar o ActiveX )
Resposta original
Para verificar o Ie11, você pode usar este: (testado)
(ou execute isso )
!(window.ActiveXObject) && "ActiveXObject" in window
Eu tenho todos os VMS do IE:
Aviso: isso não funcionará para o IE11:
como você pode ver aqui, ele retorna true:
Então o que nós podemos fazer :
Aparentemente, eles adicionaram o espaço de bits da máquina:
ie11:
ie12:
para que possamos fazer:
isso retornará verdadeiro apenas para ie11.
fonte
x64
retorna Chrome e Edgewindow.MSInputMethodContext
.Para detectar rapidamente o MSIE (da versão 6 à 11):
fonte
indexOf()
ser> -1
?Eu uso a seguinte função para detectar as versões 9, 10 e 11 do IE:
fonte
Todas as respostas acima ignoram o fato de que você mencionou que não tem janela ou navegador :-)
e é aí que diz
e navegador, janela, console, nenhum deles existe e precisa ser reavaliado. Eu tive isso em emulação. basta fechar e abrir o console algumas vezes.
fonte
Uma maneira bastante segura e concisa de detectar apenas o IE 11 é
if(window.msCrypto) { /* I'm IE11 for sure */ }
ou algo parecido com isto
var IE11= !!window.msCrypto;
msCrypto
é uma versão prefixada dowindow.crypto
objeto e implementada apenas no IE 11.https://developer.mozilla.org/en-US/docs/Web/API/Window/crypto
fonte
/x64|x32/ig.test(window.navigator.userAgent)
se aplica ao Firefox!E como eu implementei isso
fonte
&& "ActiveXObject" in window
. Terceiro: qual o truque com dupla negação!!
?Ok, tente isso, simples e para o IE11 e IE abaixo da versão 11
navigator.userAgent.toUpperCase().indexOf("TRIDENT/") != -1
para versão IE 11navigator.userAgent.toUpperCase().indexOf("MSIE") != -1
para versão IE abaixo da versão 11fonte
Este link foi útil . Ele contém o código javascript para detectar todas as versões do IE até o IE11. Testei o script com o emulador IE11. Para encontrar o emulador IE11, clique com o botão direito do mouse no navegador da web e clique em "Inspecionar elemento". No canto inferior esquerdo da página, role a barra de navegação para baixo e clique no ícone na área de trabalho. A caixa suspensa "Cadeia do agente do usuário" contém opções para emular o IE6-11.
Funciona. Usei alguns minutos antes de escrever esta resposta. Não é possível postar instantâneos - reputação insuficiente.
Este é o código - siga o link para visualizá-lo novamente:
fonte
O uso desse RegExp parece funcionar no IE 10 e IE 11:
Eu não tenho um IE mais antigo que o IE 10 para testar isso.
fonte
Use o Navegador: -
O
navigator
é um objeto que contém todas as informações sobre o navegador da máquina cliente.navigator.appName
retorna o nome do navegador da máquina cliente.fonte
Descobri que o IE11 está fornecendo mais de uma sequência de agentes de usuário em ambientes diferentes.
Em vez de confiar em
MSIE
outras abordagens, é melhor confiar naTrident
versãoEspero que isto ajude :)
fonte