加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Window,Document vs. $wnd,$doc

发布时间:2020-12-14 05:48:08 所属栏目:Java 来源:网络整理
导读:我知道以下是GWT中的某种相同内容: Window and $wndDocument and $doc 除了第一个用于Java而第二个用于JSNI(JavaScript)之外,是否有任何差异? 解决方法 Window是一个类很多静态方法,您可以使用它来获取或设置浏览器窗口的某些属性,但实际上它不是本机浏览
我知道以下是GWT中的某种相同内容:
Window and $wnd
Document and $doc

除了第一个用于Java而第二个用于JSNI(JavaScript)之外,是否有任何差异?

解决方法

Window是一个类很多静态方法,您可以使用它来获取或设置浏览器窗口的某些属性,但实际上它不是本机浏览器窗口对象.这些方法实现最终是JSNI块,它使用$wnd变量来设置/获取这些属性.像Window.alert()一样,它的实现是$wnd.alert().请注意,Window.java无法访问浏览器窗口对象中的所有内容,如window.console等.

GWT使用$wnd而不是window,因为编译的代码通常在iframe中执行,在这种情况下,window将引用iframe窗口,而$wnd将引用父窗口. $doc也是如此,它是iframe到父文档的引用.

另一方面Document是一个扩展JavaScriptObject的java类,它意味着它是一个Overlay类型,这基本上意味着它是一个原生javascript对象的特殊包装器,它不修改底层JavaScript但添加了一组java方法与它互动.传递给jsni时可以安全地施放.

总之,尽管Document和$doc在java世界中并不相同,但在编译它们时它们是相同的,否则Window它不是$wnd的叠加,它只是一种访问浏览器窗口的某些方法的方法.

虽然GWT编译代码委托给本机js对象和方法,但不要试图找到js和java对象之间的相似之处. GWT设计了一个API来使用一组java对象,小部件,模式等来开发ajax应用程序.一些对象和方法以相同的方式命名,但几乎API都不同.但是,其他项目将java编译为javascript,这两个世界在ST-JS之间具有严格的并行性,而GWT提供了一个名为Elemental的实验库,其API几乎与javascript相同(它仅适用于Chrome).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读