Sto lavorando a una funzione nativa all'interno di un'applicazione GWT e ho provato questi due metodi: documento .getElementById ("id") restituisce null ma $ doc.getElementById() restituisce un elemento valido. Qual è la differenza (concettualmente) tra questi metodi? Grazie in anticipo.
risposta
Il codice di tue corse app GWT in un (nascosto) iframe, in modo document
riferimenti che il documento di IFRAME (e window
contesto navigazione del iframe). GWT inizializza quindi le variabili $doc
e $wnd
per consentire di fare facilmente riferimento al documento e al contesto di navigazione (finestra) della "pagina host" che carica l'app GWT.
Si noti che i linker decidere come viene caricato il codice compilato, quello di default (std
) e le più recenti xsiframe
uso iframe, mentre le deprecate xs
carichi il codice nello stesso contesto di navigazione (in modo $doc == document
e $wnd == window
)
Da GWT JSNI page:
Si noti che il codice non ha fatto riferimento all'oggetto della finestra JavaScript direttamente all'interno del metodo. Quando si accede alla finestra del browser e agli oggetti del documento da JSNI, è necessario fare riferimento come $ wnd e $ doc, rispettivamente. Lo script compilato viene eseguito in una cornice nidificata e $ wnd e $ doc vengono inizializzati automaticamente per fare riferimento correttamente alla finestra e al documento della pagina host.