Come evitare il rendering di Internet Explorer in modalità di compatibilità?

Descrizione

Ambiente

Adobe Campaign Classic (versione 6.1, build 8021 o successiva)

Problema/Sintomi

Come interrompere il rendering in modalità di compatibilità con Internet Explorer?

Risoluzione

  • Ripristino del comportamento precedente
    Modifica
    /tomcat-7/conf/web.xml dell'istanza e aggiungi le seguenti righe:

    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
    
  • Per impostare un valore diverso

    Aggiungi le linee, ma imposta il valore desiderato all’interno dell’elemento aggiunto.

  • Ripristino del nuovo comportamento predefinito

    (X-UA-Compatible: IE=Edge), assicurati che questo blocco non sia presente.

Limitazioni

Non funziona per le anteprime di consegna perché non vengono consegnate via HTTP dal server Adobe Campaign. È un controllo IE incorporato che contiene HTML personalizzato. L'intestazione HTTP X-UA-Compatible non si applica e l'IE incorporato forza la modalità di compatibilità.

Per questi casi, si tratta delle seguenti soluzioni alternative:

  • Aggiungi il seguente tag meta nel HEAD nodi. È inoltre possibile utilizzare IE=8, a seconda della versione.

    meta http-equiv="X-UA-Compatible" content="IE=Edge"/
    
  • Un'altra opzione consiste nel creare una chiave del Registro di sistema su tutte le workstation che eseguono 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)
    
  • Puoi anche sperimentare con altri valori come 9000 se non sei nemmeno target 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
    

Causa

In passato (build 6.1 ‹ 8021), il server non ha mai inviato esplicitamente le intestazioni della modalità di compatibilità dell'agente utente (compatibile X-UA) ai client web. Alcune pagine contenevano il seguente meta tag, ma non sempre funzionava a causa delle tediose euristiche di IE, principalmente utilizzando la console.

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

La seguente intestazione HTTP è ora impostata per impostazione predefinita su tutte le richieste che hanno risposto Tomcat:

X-UA-Compatible: IE=edge

Questa intestazione rende effettivamente la console e IE di rendering utilizzando gli ultimi algoritmi disponibili. L'aggiornamento ha risolto tutti i problemi di compatibilità segnalati. Se questo nuovo comportamento è indesiderato, puoi prendere i passaggi sopra indicati per ripristinare il vecchio comportamento.

In questa pagina