Dans un environnement contrôlé par domaine, je constate que le mode de compatibilité est déclenché sur certains clients (winXP / Win7, IE8 / IE9) même lorsque nous fournissons des balises X-UA, une définition! DOCTYPE et une réponse "IE = Edge" en-têtes. Ces clients ont la case à cocher «Afficher les sites intranet en vue de compatibilité» cochée. C'est précisément ce que j'essaie de passer outre.
Ce qui suit est la documentation que j'ai utilisée pour essayer de comprendre comment IE décide de déclencher réellement le mode de compatibilité.
http://msdn.microsoft.com/en-us/library/ff406036%28v=VS.85%29.aspx
http://blogs.msdn.com/b/ie/archive/2009/02/16/just-the-facts-recap-of-compatibility-view.aspx
Les propriétaires de sites contrôlent toujours leur contenu. Les propriétaires de sites peuvent choisir d'utiliser la balise compatible X-UA pour être absolument déclaratifs sur la façon dont ils aimeraient que leur site s'affiche et pour mapper les pages du mode Standards aux normes IE7. L'utilisation de la balise compatible X-UA remplace la vue de compatibilité sur le client.
Google pour "Defining Document Compatibility" , malheureusement le moteur SPAM ne me laisse pas publier plus de 2 URL.
Ceci est une ASP .NET
application Web et inclut les définitions suivantes sur la page maître:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
</head>
et web.config
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="X-UA-Compatible" value="IE=Edge" />
</customHeaders>
</httpProtocol>
</system.webServer>
J'ai utilisé Fiddler pour vérifier que l'en-tête est bien injecté correctement.
Je crois comprendre qu'avec ces paramètres, je devrais pouvoir remplacer le paramètre du navigateur "Afficher les sites intranet dans l'affichage de compatibilité". Mais selon le client, j'ai constaté que certains d'entre eux déclencheraient toujours le mode de compatibilité. Cela semble également être au niveau de la machine plutôt qu'un paramètre de groupe de stratégies, car j'obtiens des résultats différents même lorsque j'utilise avec le même ensemble d'informations d'identification sur différents clients.
La désactivation de la case à cocher Paramètres d'affichage de compatibilité fait l'affaire. Mais le but réel est de s'assurer que l'application est rendue exactement de la même manière quels que soient les paramètres du client.
Des pensées et ce que je pourrais manquer? Est-il possible du tout de forcer IE à toujours rendre les pages sans déclencher le mode de compatibilité?
mille mercis,
Jaume
PS: le site est actuellement en développement et n'est bien sûr pas dans la liste de compatibilité de Microsoft, mais j'ai aussi vérifié au cas où.
Google pour "Comprendre la liste d'affichage de compatibilité" , malheureusement, le moteur anti-spam ne me permet pas de publier plus de 2 URL.
Changer mon en-tête pour résoudre le problème:
<html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
la source
Mise à jour: informations plus utiles Que fait <meta http-equiv = "X-UA-Compatible" content = "IE = edge">?
Peut-être que cette URL peut vous aider: Activer les modes navigateur avec Doctype
Edit: Aujourd'hui, nous avons pu remplacer la vue de compatibilité avec:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
la source
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
IE=Edge
puisque la question concerne la désactivation du mode de compatibilité.Pour les développeurs Node / Express, vous pouvez utiliser un middleware et le définir via le serveur.
app.use(function(req, res, next) { res.setHeader('X-UA-Compatible', 'IE=edge'); next(); });
la source