La semaine dernière, Microsoft a officiellement lancé le premier aperçu d'Internet Explorer 11 avec Windows 8.1. De cette façon, il est temps de se reposer sur toutes les rumeurs sur cette version controversée divulguée du navigateur Web. Nous connaissons maintenant quelques détails importants sur Internet Explorer 11, y compris la prise en charge de WebGL, préfeccié (Note du traducteur: Preread, telles que le téléchargement de fichiers, etc., et je ne sais pas si la traduction est correcte), prérenrender (préparatif), flexbox, observateurs de mutation et autres normes Web. Peut-être plus intéressant dans IE11, c'est si c'est IE.
Microsoft a supprimé certaines fonctionnalités du navigateur Internet Explorer pour la première fois depuis longtemps. La chaîne d'agent utilisateur a également changé. Il semble que Microsoft ait abandonné sa propre voie afin que les branches de code de détection IE existantes renvoient FALSE dans Internet Explorer 11 Browser, que ce soit en JavaScript ou sur le serveur.
Modifications de l'agent utilisateur
Par rapport aux versions précédentes, la chaîne d'agent utilisateur d'Internet Explorer 11 est plus courte et il y a des changements intéressants:
La copie de code est la suivante:
Mozilla / 5.0 (Windows NT 6.3; Trident / 7.0; RV 11.0) comme Gecko
Pour les chaînes d'agent utilisateur pour Internet Explorer 10 sur Windows 7
La copie de code est la suivante:
Mozilla / 5.0 (compatible; MSIE 10.0; Windows NT 6.1; Wow64; Trident / 6.0)
La différence la plus évidente est que la balise "MSIE" de la chaîne d'agent utilisateur dans le navigateur Internet Explorer a été supprimée. L'ajout de "comme Gecko" est également convaincant à la queue de l'agent utilisateur. Cela montre qu'Internet Explorer préfère être reconnu comme un navigateur Gecko que comme un explorateur Internet lui-même. Safari est le premier navigateur à ajouter "comme Gecko", afin que n'importe qui puisse renifler le caractère "Gecko" dans la chaîne d'agent utilisateur pour permettre au navigateur de passer.
Maintenant, tout code de reniflement qui recherche "MSIE" ne fonctionne pas sous la nouvelle chaîne d'agent utilisateur. Vous pouvez toujours rechercher le personnage "Trident" pour déterminer qu'il s'agit du navigateur IE (le logo "Trident" a été introduit avec Internet Explorer). La véritable version d'Internet Explorer est identifiée par "RV".
De plus, les informations de l'objet Navigator ont également changé, ce qui cache davantage le navigateur utilisé.
Navigator.Appname est défini sur "Netscape"
Navigator.Product est défini sur "Gecko"
Cela peut sembler une tentative de tromper sournoisement le développeur, mais ce sont en fait spécifiés HTML5. La propriété Navigator.Product doit être "Gecko", et le Navigator.Appname doit également être "netscape" ou plus spécifique. Mais Internet Explorer 11 manque suit cette étrange suggestion.
Les effets secondaires causés par les modifications des informations sur le navigateur, la détection du navigateur basée sur la logique JavaScript dans l'utilisation peuvent ne pas être disponibles, ce qui fait que l'Explorateur 11 de l'Internet 11 est un navigateur basé sur Gecko.
Document.Toute et ses amis
Depuis IE4, Document.Am a tout fait dans le navigateur IE. Le document.getElementById () implémenté précédemment est similaire à Document.tall est la méthode IE pour obtenir une référence d'élément DOM. Bien que Document.t maintient la prise en charge de Dom de IE5 à IE10. Cependant, dans 11, le produit laissé de cette époque a été défini pour retourner false, ce qui signifie que tout jugement de branche de code basé sur le document. tout échouera dans IE11, même si le code utilise réellement le document. Tout fonctionne correctement.
Un autre héritage est le fixevent () qui ajoute la fonction d'événement, similaire à la méthode detachevent (). Cette méthode a été supprimée de IE11. Ces méthodes sont supprimées pour éviter certains jugements logiques, tels que:
La copie de code est la suivante:
fonction addevevent (élément, type, gestionnaire) {
if (element.attachevent) {
element.Attachevent ("ON" + type, gestionnaire);
} else if (element.addeventListener) {
element.adDeventListener (type, gestionnaire, false);
}
}
Bien sûr, nous recommandons que la version que vous êtes mieux utilisée pour tester soit toujours stable et répond aux normes. À un certain niveau, la suppression de la méthode attachée ne provoque aucun inconfort. Cependant, Internet est plein de codes de logique de détection de fonctionnalités pour Internet. La suppression de la méthode attachée garantit que tout code écrit de la manière ci-dessus utilisera la version standard au lieu des méthodes spécifiques à IE.
Quelques autres fonctionnalités supprimées:
window.execscript () - ie version de la méthode EVAL ()
window.doscroll () - ie Windows Rubrolling Method
script.onreadystateChange - Modifications d'état du script de chargement dans IE
script.readystate - l'état du chargement du script dans IE
Document.Selection - Le texte actuellement sélectionné dans IE
Document.Createstylesheet - Créer un document de feuille de style dans IE
style.stylesheet - un objet de style dans le navigateur IE qui fait référence à une feuille de style
Toutes ces méthodes de navigateur IE sont remplacées par des fonctionnalités standard. Après avoir supprimé ces fonctionnalités et méthodes, le code de navigateur croisé basé sur la détection des fonctionnalités fonctionnelles standard peut toujours fonctionner normalement sans changer.
en conclusion
IE11 est probablement le meilleur navigateur IE depuis longtemps. Microsoft se prépare enfin à éliminer les erreurs commises dans le passé et est prête à commencer par les navigateurs en fonction des normes actuelles. La suppression des anciennes fonctionnalités et la modification des chaînes d'agent utilisateur qui ne sont pas reconnues comme des navigateurs IE sont une pratique unique, qui garantit que tous les sites Web continuent de fonctionner. Si l'application Web utilise la détection des fonctionnalités au lieu de renifler le navigateur, le code doit être exécuté dans IE11. Pour les applications qui utilisent des reniflements d'agent utilisateur, les utilisateurs peuvent toujours voir un site Web avec de bonnes fonctionnalités, car IE11 a un excellent support pour la norme.
Un avenir sans code de branche IE arrive, attendons-le ensemble.
(Mis à jour le 2 juillet 2013), le document. Tous mentionnés dans la révision n'ont pas été réellement supprimés, mais ont été changés en falsification
Je n'ai pas traduit l'article depuis longtemps. Cette fois, j'ai traduit le blog de Nicholas C. Zakas. Le texte original est ici: http://www.nczonline.net/blog/2013/07/02/internet-explorer-11-dont-call-me-ie/