7

我在 GWT 应用程序内的本机函数中工作,我尝试了这两种方法: document.getElementById("id") 返回 null 但 $doc.getElementById() 返回有效元素。这种方法之间(在概念上)有什么区别?提前致谢。

4

2 回答 2

7

您的 GWT 应用程序的代码在(隐藏的)iframe 中运行,因此会document引用该 iframe 的文档(以及windowiframe 的浏览上下文)。因此,GWT 会初始化变量$doc$wnd让您轻松引用加载 GWT 应用程序的“主机页面”的文档和浏览上下文 ( window )。

请注意,链接器决定如何加载已编译的代码,默认的 ( )std和较新的xsiframe使用 iframe,而不推荐使用xs的将代码加载到相同的浏览上下文$doc == document$wnd == window

于 2011-09-05T14:31:37.190 回答
2

GWT JSNI 页面

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

于 2011-09-05T14:33:07.980 回答