web-dev-qa-db-fra.com

Forcer le mode navigateur "Internet Explorer 8" dans l'intranet

Il existe "Internet Explorer 8", "Mode de compatibilité Internet Explorer 8" et le mode IE7 dans IE8.

Cependant, le paramètre par défaut dans IE oblige tous les sites Web intranet à utiliser le "Mode de compatibilité IE8" même si j'ai défini le type, la balise méta, l'en-tête http, comme suggéré pour le forcer en mode IE8.

J'ai

<! DOCTYPE HTML PUBLIC "- // W3C // DTD HTML 4.01 Transitional // FR" " http://www.w3.org/TR/html4/loose.dtd ">

et

<meta http-equiv = "Compatible X-UA" content = "IE = 8">

Mais il passe toujours en "Mode de compatibilité IE8", sans aucune modification du réglage IE.

Comment le forcer en mode "IE8" pur, sans changer les paramètres du navigateur?

PS. Je ne parle pas de "mode document" ici.

69
Dennis C

Apparemment, MSFT n’a pas pris en compte un environnement intranet étendu dans lequel nous avons de nombreuses applications Web différentes exécutées.

Il n’ya aucun moyen de contourner le paramètre IE8, selon quelque part que j’ai lu sur le forum MSDN.

Je devrai donc demander à mes administrateurs système de définir de nouvelles stratégies de groupe pour modifier le paramètre "Affichage de compatibilité" et la valeur et empêcher l'utilisateur de modifier cette valeur jusqu'à ce que MSFT découvre ce bogue et le corrige.

A partir d'un article de blog MSDN } _ (souligné par eux): "le mode navigateur est choisi avant = IE demande le contenu Web. Cela signifie que sites ne peut pas choisir Mode navigateur. " 

44
Dennis C

Il est possible de remplacer le mode de compatibilité dans l'intranet. Ajoutez simplement le code ci-dessous au fichier web.config. Travaillé pour moi avec IE9.

<system.webServer>
<httpProtocol>
  <customHeaders>
    <clear />
    <add name="X-UA-Compatible" value="IE=Edge" />
  </customHeaders>
</httpProtocol>

35
Andras Csehi

Vous devrez faire quelques ajustements à IE.

Les voici.....

Dans les options Internet/Intranet local/Sites 

Sous: Intranet local dans Sites, décochez la case "Détecter automatiquement le réseau intranet".

Puis sélectionnez seulement "Inclure tous les chemins réseau (UNC)

Voir les captures d'écran ci-joint

 Screenshot

11
Codex73

J'ai trouvé les réponses difficiles à suivre, donc voici les informations importantes en un mot:

Si votre intranet utilise les paramètres par défaut pour IE, IE7 Standards Mode est appliqué aux sites intranet, quels que soient les paramètres de site Web.

De ce :

Vue de compatibilité et entreprise

Un grand nombre de secteurs d'activité les sites Web sont Internet Explorer 7 capable aujourd'hui. Afin de préserver compatibilité, Internet Explorer 8 est livré avec des valeurs par défaut intelligentes basées sur évaluation de zone. Dans l'état par défaut, tous les sites sur l'internet public afficher dans Internet Explorer 8 Mode Standards (affichage de compatibilité Off) et tous les sites Web intranet afficher dans Internet Explorer 7 Mode standard (Affichage de compatibilité Activé).

Regardons quelques exemples. Si vous accédez aux sites de votre local intranet comme http: // myPortal et http: // sharepoint/sites/mySite , Internet Explorer 8 s'identifie avec une chaîne d'agent d'utilisateur de «7», vecteur de version de «7», et affiche les pages Web qui déclenchent Mode standard dans Internet Explorer 7 Mode standard. Cette combinaison permet des pages Web qui ont fonctionné correctement dans Internet Explorer 7 pour continuer à faites-le dans IE8.

6
upshake

Pour remplacer les paramètres d'affichage de compatibilité pour l'intranet ou tous les sites Web, vous devez faire en sorte que IE8 émule lui-même.

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >
4
Craig A

Définissez un en-tête HTTP personnalisé au lieu d'utiliser <meta... dans la section <head>. Celles-ci sont supposées être équivalentes, mais j'ai vu qu'un en-tête HTTP X-UA-Compatible du serveur remplaçait le paramètre "Afficher les sites intranet dans l'affichage de compatibilité" de IE 8, contrairement à l'élément <meta....

3
David Kolar

Si vous utilisez .NET, j'ai la réponse pour vous:

HTML:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=8" >

Web.Config:

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <clear />
        <add name="X-UA-Compatible" value="IE=8" />
      </customHeaders>
    </httpProtocol>
2

Lisez quelque part que la déclaration DOCTYPE doit être le toute première ligne . Pas de commentaires, ni de lignes vides.

En combinaison avec la définition des en-têtes de réponse HTTP, cela a fonctionné pour moi. Browser Mode est passé de "Mode de compatibilité IE9" à simplement "Mode IE9".

1
BrunoSalvino

La réponse marquée "correct" est techniquement correcte mais suggère qu'il n'y a pas de solution au problème réel auquel la plupart des gens sont confrontés, à savoir: "comment afficher correctement sur IE8, avec le mode de compatibilité activé, une application Web qui le mode de compatibilité?". 

<!DOCTYPE HTML>
<HEAD>
    <meta http-equiv="X-UA-Compatible" content="Edge" >
</HEAD>

cela a fonctionné pour moi sur plusieurs postes de travail. 

Si le code ci-dessus est implémenté du côté de l'application, IE8 semble se comporter comme s'il n'était pas en mode de compatibilité, même s'il affiche toujours le mode de navigateur en tant que mode de compatibilité.

0
Tia

Vous devez supprimer le numéro de port du nom de votre site de domaine site: 1180 / index /

Si le navigateur voit le numéro de port dans l'URL - salut "pense", c'est qu'il s'agit d'un intranet.

configurez votre serveur DNS pour les URL conviviales - site.com/index et ça marche

0
ZOXEXIVO

Pour que la déclaration META fonctionne, le doctype doit être la version simplifiée: 

<!DOCTYPE html>

Pas la plus longue déclaration dans la question de Dennis. 

0
Deborah

HKEY_CURRENT_USER\Logiciel\Microsoft\Internet Explorer\BrowserEmulation IntranetCompatibilityMode 1 -> 0

0
Yurok

Ce combo a fait le tour pour moi:

<!DOCTYPE HTML>
<HEAD>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >
</HEAD>

au moins IE outils de développement, rapports IE9 Compat View, normes IE8

juste pour le plaisir, j’ai essayé EmulateIE7 et cela a fonctionné aussi .. simplifier l’extension! DOCTYPE était la clé.

0
Ray Brockman