2011-09-05 27 views
7

我在GWT应用程序中的本地函数工作的差异,我已经试过这两种方法:文件.getElementById(“id”)返回null,但$ doc.getElementById()返回一个有效的元素。 这两种方法的区别(概念上)是什么? 在此先感谢。

回答

7

您的GWT应用程序运行的一个(隐藏)的iframe代码,因此document引用iframe的文件(和window iframe的浏览器上下文)。 GWT从而初始化变量$doc$wnd让你轻松引用文档和加载GWT应用中的“主页”的浏览器上下文(窗口)。

注意接头决定编译代码的加载方式,默认的(std)和新xsiframe使用iframe,而弃用xs负载你在同一个浏览器上下文(所以$doc == document$wnd == window

2

代码从GWT JSNI page

注意,代码并没有直接引用JavaScript窗口对象的方法内。当从JSNI访问浏览器的窗口和文档对象时,必须分别将它们引用为$ wnd和$ doc。你的编译脚本的嵌套的框架中运行,$ WND和$文档自动初始化以正确指主机页面的窗口和文档。

相关问题