2012-11-24 14 views
5

posso aprire una finestra di dialogo come questo in jQuery:jQuery Posizionamento Richiede <! HTML DOCTYPE>

position: { 
    of: $("#Parent"), 
    my: "left top", 
    at: "left top" 
} 

Questo funziona bene in FF, ma in IE9 funziona solo quando il doctype è impostato su <!DOCTYPE HTML> e non un altro come la seguente:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

sembra che tutti gli altri messi doctype IE in quirks mode.

Il problema è che l'utilizzo di <!DOCTYPE HTML> fa scattare gli ActiveWidgets; la griglia non verrà mostrata in nessun browser.

Posso utilizzare il posizionamento jQuery senza <!DOCTYPE HTML> in IE? Oppure posso far funzionare ActiveWidgets con questo DOCTYPE consigliato?


Grazie per le risposte

Dopo aver trascorso un giorno a sostituire ActiveWidgets griglia jqwidgets, ho finalmente non piace il risultato. Uso i modelli PHP per generare griglie dinamiche da file di testo ini.

Ho finito per dividere il mio documento in 2 iframe. Uno con le finestre di dialogo e altri con griglia

modo non riesco a spostare le finestre di dialogo di fuori della cornice ma funziona

questo è grande comunità che mi ha aiutato molto la progettazione di grande sito Intranet grazie

+0

hai eseguito una pagina attraverso il validatore w3c per essere sicuro di non avere tag spezzati da qualche parte? WHAT sono 'ActiveWidgets'? – charlietfl

+5

Sembra che tu abbia del codice che dipende dalla modalità Standard e ActiveWidgets come una libreria di terze parti che dipende dalla modalità Quirks.Non è possibile avere entrambe le modalità attive nello stesso documento, quindi l'azione appropriata è quella di sostituire ActiveWidgets con qualcosa che è ragionevole progettato invece di essere un pasticcio non professionale. (In base alla descrizione di ActiveWidgets - sostituirlo con YUI, jQuery UI o Dojo) – Quentin

risposta

0

È possibile forzare MSIE con l'ultima versione disponibile utilizzando questo meta tag dentro la testa>:

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

TLDR; utilizzare un valido/riconosciuto DOCTYPE per garantire la non-quirks mode

Il DOCTYPE transizione HTML4 listed in the W3C informational referenceinclude DTD URI:

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

Per l'elenco modalità di matrice nell'articolo Quirks mode wikipedia <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> (senza l'identificativo del sistema) sarà mettere IE8 + in modalità Quirks. Ops.

(Si noti che, anche con l'identificatore di sistema di transizione, è ancora nelle quasi standard modalità! Migliore in modo da utilizzare un DTD Strict e/o il DOCTYPE HTML5 in modo che i recenti browser verrà eseguito in modalità standard.)

Vedere il commento di Quentin per alcune soluzioni - dopo il che fissa il DOCTYPE per garantire la modalità Quasi standard/Standard.

+0

Grazie per i rispondenti – Ben

Problemi correlati