2010-05-05 11 views
5

sto lavorando all'interno dei parametri di uno sviluppatore non-raggiungibile, il quale ha creato un sistema di generazione HTML per i nostri prodotti .. Ogni volta che una nuova pagina viene generata egli pone:HTML Doctype Impostazione/quirks mode IE

<!-- updated page at 05/MAY/2010 02:58.58 --> 
<!-- You must use the template manager to modify the formatting of this page. --> 

conseguente mio codice che sembra:

<!-- updated page at 05/MAY/2010 02:55.30 --> 
<!-- You must use the template manager to modify the formatting of this page. --> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 

non credo di IE lettura questa doctype a tutti, come quando si guarda lo schermo sviluppatore, rende in quirks mode ... c'è qualche altro modo per forza IE fuori da questa orribile modalità di Quirks? Ho cercato di raggiungere lo sviluppatore ma è stato piuttosto non disponibile ..

Grazie in anticipo per qualsiasi aiuto tu possa avere da offrire.

// EDIT:

Questo è possibile fare tramite JavaScript, per colpire la pagina di genitore con un a comando carico?

+0

Si tratta di una specie di ritardo, ma il problema sono i commenti di fronte a doctype. Ciò fa sì che IE passi in modalità quirks. –

risposta

2

Non c'è niente che tu possa fare. Il tuo sistema di gestione dei contenuti sta fallendo. O hai bisogno di trovare lo sviluppatore e fargli riparare questo sistema difettoso o ottenere un nuovo sistema di gestione dei contenuti.

+0

bummer .. continuerò la mia follia via email. Grazie – Petrogad

0

Come vengono generate le pagine?

Se si utilizza PHP, è possibile utilizzare il buffer di output per mantenere i commenti del modello dall'output.

+0

Purtroppo ho 0 controllo sul modo in cui vengono anche generati:/I hit build, e le pagine html sono costruite, e sono bloccato con quello che è sulla pagina, posso ricostruire ma quel commento è costantemente attaccato superiore. – Petrogad

0

Se sei bloccato con quel codice, allora perché non aggiungere un ultimo passaggio al processo di creazione, uno che spoglia questi commenti?

2

È possibile forzare IE per utilizzare la modalità standard con l'aggiunta di

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

all'inizio della sezione di testa per il codice HTML, oppure è possibile aggiungere l'header HTTP equivalente tramite la configurazione del server. Ciò funzionerà solo su IE8 o versioni successive, tuttavia.

0

Sì, è possibile, è una cosa molto brutta da fare però.

UPD. Siamo spiacenti, no, non funziona.

Ma in alcuni casi, semplicemente non abbiamo il controllo su ciò che viene offerto all'utente. Situazione tipica: un gateway di pagamenti che la tua azienda è obbligata a utilizzare per qualche motivo legale. Permettono di modellare la pagina e di inserirvi i propri contenuti, ma non consentono di cambiare o di come viene impostato il doctype (e non viene impostato affatto!).

Così, ispirato da questo link: http://www.webmasterworld.com/forum91/4856.htm e abbellito soluzione sarebbe probabilmente qualcosa di simile (metterlo prima della chiusura tag body </body>):

<!--[if IE]> 
<script> 
!function() { 
var doctype = "<!DOCTYPE html>", 
    headHTML = document.head.outerHTML, 
    bodyHTML = document.body.outerHTML; 

window.doctypeSet = false; 

if (window.doctypeSet) return; 
setTimeout(function(){ 
    document.write(
    doctype + 
    "<html>" + 
    headHTML + 
    bodyHTML + 
    "</html>" 
); 
    window.doctypeSet = true; 
}, 0); 

}(); 
</script> 
<![endif]--> 

Tuttavia, si potrebbe anche voler cambiare <!--[if IE]> a qualcosa come <!--[if lte IE 9]>, in modo che IE10 e versioni successive non eseguano questa danza sporca. Non sono sicuro che IE10 cambierà anche in quirksmode se doctype non è presente, se non sta cambiando, quindi non c'è bisogno di fare invocare questo codice lì.