2010-09-15 14 views
5

Sto sperimentando un comportamento strano in IE8 che sembra essere un bug di IE ma non ne sono sicuro. Quando si accede al campo currentStyle da un elemento, restituisce null. Se visualizzo le sue proprietà nella finestra di controllo, posso vedere che è definito e posso visualizzare i suoi membri. Sembra che se richiami gli attributi prima della mano, restituirà il currentStyle corretto. Mi stavo chiedendo se qualcuno ha già visto questo comportamento e sa di alcuni accorgimenti. Questo sta accadendo quando costruisci la griglia del dojo. Non riesco a sovrascrivere questo comportamento di JavaScript perché è nascosto in una libreria Javascript esterna (dojo) e non ho accesso alla funzione in primo luogo per sovrascrivere (la funzione è definita in un altro ambito di funzioni).Comportamento IE strano: currentStyle restituisce null

+0

Intendi 'currentStyle' o' currentStyles'? –

+0

oops intendo currentStyle – Bishnu

+0

In generale non è significativo accedere a 'currentStyle' finché l'elemento non viene aggiunto al documento (che renderà la proprietà disponibile). – bobince

risposta

2

L'oggetto currentStyle in IE è asincrono. Ciò significa che gli stili non possono essere impostati e interrogati immediatamente. Devi consentire a IE di agire sulla tua manipolazione una volta che il tuo JavaScript ha completato le modifiche. Puoi impostare Timeout per 0 millisecondi, che attaccherà la funzione su una coda di qualche tipo e IE eseguirà le modifiche DOM prima di chiamare il prossimo bit di JavaScript.