Na semana passada, a Microsoft lançou oficialmente a primeira prévia do Internet Explorer 11 com o Windows 8.1. Dessa forma, é hora de descansar todos os rumores sobre esta controversa versão vazada do navegador da web. Agora conhecemos alguns detalhes importantes sobre o Internet Explorer 11, incluindo suporte para WebGL, Preparet (NOTA DO TRANSTRADOR: PREAD, como fazer upload de arquivos, etc., e não sei se a tradução está correta), pré -renda (pré -representação), Flexbox, Observadores de mutações e outros padrões da Web. Talvez mais interessante no IE11 seja se é IE.
A Microsoft removeu alguns recursos do Internet Explorer Browser pela primeira vez em muito tempo. A sequência agente do usuário também mudou. Parece que a Microsoft abandonou sua própria maneira, de modo que as filiais de código de detecção existentes do IE retornem falsas no Internet Explorer 11 navegador, seja em JavaScript ou no servidor.
Alterações no agente do usuário
Comparado com as versões anteriores, a string de agente de usuário do Internet Explorer 11 é mais curta e há algumas mudanças interessantes:
A cópia do código é a seguinte:
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; RV 11.0) como Gecko
Para strings agentes do usuário para o Internet Explorer 10 no Windows 7
A cópia do código é a seguinte:
Mozilla/5.0 (compatível; MSIE 10.0; Windows NT 6.1; Wow64; Trident/6.0)
A diferença mais óbvia é que a tag "MSIE" da string agente do usuário no navegador do Internet Explorer foi removida. Também é atraente a adição de "Like Gecko" à cauda do agente do usuário. Isso mostra que o Internet Explorer prefere ser reconhecido como um navegador de lagartixas do que como um próprio Internet Explorer. O Safari é o primeiro navegador a adicionar "Like Gecko", para que qualquer um possa cheirar o personagem "Gecko" na sequência agente do usuário para permitir que o navegador passe.
Agora, qualquer código de funge que procure "MSIE" não funciona sob a nova string de agente de usuário. Você ainda pode procurar o personagem "Trident" para determinar que é o navegador do IE (o logotipo "Trident" foi introduzido com o Internet Explorer). A versão real do Internet Explorer é identificada por "RV".
Além disso, as informações do objeto Navigator também foram alteradas, o que oculta ainda mais o navegador que está sendo usado.
Navigator.AppName está definido como "Netscape"
Navigator.Product está definido como "Gecko"
Isso pode parecer uma tentativa de enganar sorrateiramente o desenvolvedor, mas na verdade são especificados pelo HTML5. A propriedade Navigator.Product deve ser "Gecko", e o Navigator.AppName também deve ser "Netscape" ou mais específico. Mas o Internet Explorer 11 falta segue essa sugestão estranha.
Os efeitos colaterais causados por alterações nas informações do navegador, a detecção do navegador com base na lógica do JavaScript em uso pode não estar disponível, fazendo com que o Internet Explorer 11 reconheça como um navegador baseado em lagartixas.
document.ll e seus amigos
Desde o IE4, document.all fez tudo no navegador do IE. O document.getElementById () implementado anteriormente é semelhante ao document. Embora Document.All mantenha o suporte ao DOM do IE5 ao IE10. No entanto, em 11, o produto restrito a partir desta época foi definido para retornar false, o que significa que qualquer julgamento de ramificação de código com base no documento. Tudo falhará no IE11, mesmo que o código realmente use o documento. Tudo para funcionar corretamente.
Outro legado é o AnextEvent () que adiciona a função de evento, semelhante ao método Detachevent (). Este método foi removido do IE11. Esses métodos são removidos para evitar alguns julgamentos lógicos, como:
A cópia do código é a seguinte:
função addEvent (elemento, tipo, manipulador) {
if (element.attachevent) {
element.attachevent ("on" + tipo, manipulador);
} else if (element.addeventListener) {
element.AddeventListener (tipo, manipulador, false);
}
}
Obviamente, recomendamos que a versão que você esteja mais bem usada para testar seja sempre estável e atenda aos padrões. Em algum nível, a remoção do método AnextEvent não causa nenhum desconforto. No entanto, a Internet está cheia de códigos de lógica de detecção de recursos para a Internet. A remoção do método AnextEvent garante que qualquer código escrito da maneira acima use a versão padrão em vez dos métodos específicos do IE.
Alguns outros recursos removidos:
window.execscript () - IE versão do método Eval ()
Window.Doscroll () - IE Método de rolagem de janela
script.onreadystatechange - mudanças de estado do script de carregamento no ie
script.readyState - o estado de carregamento de scripts no IE
Document.Selection-O texto atualmente selecionado no IE
document.createstestylesheet-crie um documento de folha de estilo no IE
style.stylesheet-um objeto de estilo no navegador que faz referência a uma folha de estilo
Todos esses métodos do navegador do IE são substituídos por recursos padrão. Após a remoção desses recursos e métodos, o código de navegador cruzado com base na detecção padrão de recursos funcionais ainda pode funcionar normalmente sem mudar.
para concluir
O IE11 é provavelmente o melhor navegador do IE por um longo tempo. A Microsoft está finalmente se preparando para eliminar erros cometidos no passado e está pronto para começar com navegadores com base nos padrões atuais. A exclusão de recursos antigos e a modificação de seqüências de agentes do usuário que não são reconhecidas, pois os navegadores do IE é uma prática única, o que garante que todos os sites continuem funcionando. Se o aplicativo da Web usar a detecção de recursos em vez de farejando o navegador, o código deverá ser executado no IE11. Para aplicativos que usam o Snifting do agente do usuário, os usuários ainda podem ver um site com boa funcionalidade, porque o IE11 tem um excelente suporte para o padrão.
Um futuro sem o código da filial do IE está chegando, vamos esperar juntos.
(Atualizado em 2 de julho de 2013), o documento. Tudo mencionado na revisão não foi realmente excluído, mas foi alterado para falsidade
Não traduzi o artigo há muito tempo. Desta vez, traduzi o blog de Nicholas C. Zakas. O texto original está aqui: http://www.nczonline.net/blog/2013/07/02/internet-explorer-11-dont-me-ie/