2011-09-05 13 views
7

Estoy trabajando en una función nativa dentro de una aplicación GWT y he intentado con estos dos métodos: documento .getElementById ("id") devuelve null pero $ doc.getElementById() devuelve un elemento válido. ¿Cuál es la diferencia (conceptualmente) entre estos métodos? Gracias de antemano.

Respuesta

7

El código de su aplicación GWT se ejecuta en un iframe (oculto), por lo que document hace referencia al documento del iframe (y window contexto de exploración del iframe). GWT inicializa así las variables $doc y $wnd para que pueda consultar fácilmente el documento y el contexto de navegación (ventana) de la "página de host" que carga la aplicación GWT.

Tenga en cuenta que los enlazadores deciden cómo se carga el código compilado, el defecto (std) y los nuevos xsiframe iframes de uso, mientras que las obsoletas xs cargas de su código en el mismo contexto de navegación (por lo $doc == document y $wnd == window)

2

De GWT JSNI page:

Tenga en cuenta que el código no hace referencia al objeto de ventana de JavaScript directamente dentro del método. Al acceder a la ventana del navegador y documentar los objetos de JSNI, debe hacer referencia a ellos como $ wnd y $ doc, respectivamente. Su secuencia de comandos compilada se ejecuta en un marco anidado, y $ wnd y $ doc se inicializan automáticamente para hacer referencia a la ventana y el documento de la página del host.

Cuestiones relacionadas