Comment éviter le rendu d’Internet Explorer en mode de compatibilité ?

Description

Environnement

Adobe Campaign Classic (version 6.1 build 8021 ou ultérieure)

Problème/Symptômes

Comment arrêter le rendu d’Internet Explorer en mode de compatibilité ?

Résolution

  • Pour restaurer l’ancien comportement
    Modifier
    /tomcat-7/conf/web.xml de l'instance et ajoutez les lignes suivantes :

    filter
            filter-nameHttpHeaderFilter/filter-name
            filter-classcom.neolane.jssp.HttpHeaderFilter/filter-    class
            init-param
              param-nameX-UA-Compatible/param-name
              param-value/param-value
            /init-param
        /filter
    
  • Pour définir une autre valeur

    Ajoutez les lignes, mais définissez la valeur souhaitée dans l’élément ajouté.

  • Pour restaurer le nouveau comportement par défaut

    (X-UA-Compatible: IE=Edge), assurez-vous que ce bloc n’est pas présent.

Limites

Il ne fonctionne pas pour les aperçus de diffusion, car ils ne sont pas livrés via HTTP par le serveur Adobe Campaign. Il s’agit d’un contrôle IE incorporé qui contient un HTML personnalisé. L’en-tête compatible HTTP X-UA ne s’applique pas, et l’IE incorporée force le mode de compatibilité.

Dans ce cas, les solutions suivantes sont possibles :

  • Ajoutez la balise meta suivante dans le fichier HEAD noeuds. Vous pouvez également utiliser IE=8, selon votre version.

    meta http-equiv="X-UA-Compatible" content="IE=Edge"/
    
  • Une autre option consiste à créer une clé de registre sur tous les postes de travail exécutant la console :

    HKLM\Software\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION\nlclient.exe
        (For 32-bit windows, it is HKLM\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION)
        Type: DWORD
        Value: 8000 (decimal)
    
  • Vous pouvez également tester d’autres valeurs comme 9000 si vous ne ciblez même pas IE8.

    HKLM\Software\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION\nlclient.exe
        (For 32-bit windows, it is HKLM\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION )
        Type: DWORD
    

Cause

Dans le passé (6.1 build 8021), le serveur n’avait jamais explicitement envoyé d’en-têtes de mode de compatibilité de l’agent utilisateur (compatible X-UA) aux clients web. Certaines pages contenaient la balise meta suivante, mais elle ne fonctionnait pas toujours en raison d’une heuristique Internet Explorer fastidieuse, utilisant principalement la console.

meta http-equiv="X-UA-Compatible" content="IE=Edge"/

L’en-tête HTTP suivant est maintenant défini par défaut sur toutes les requêtes répondues par Tomcat :

X-UA-Compatible: IE=edge

Cet en-tête effectue efficacement le rendu de la console et d’IE à l’aide des derniers algorithmes disponibles. La mise à jour a résolu tous les problèmes de compatibilité signalés. Si ce nouveau comportement est indésirable, vous pouvez prendre les mesures ci-dessus pour restaurer l’ancien comportement.

Sur cette page