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

前端之家收集整理的这篇文章主要介绍了java – Window,Document vs. $wnd,$doc前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道以下是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).

原文链接:https://www.f2er.com/java/121238.html

猜你在找的Java相关文章