如何在使用 "document" 的 GWT 中使用第三方库
How to use 3rd party libraries in GWT which use "document"
我想在 GWT 中使用第 3 方 JS 库。我知道您可以使用 GWT JSNI - http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsJSNI.html
如该文档中所述,您需要使用 $doc
而不是 document
。您如何使用使用 document
的第 3 方库?
这不是重复的,因为它专门询问第 3 方库中使用的关键字 document
,而不是一般如何在 GWT 中使用 JS。
确保 JS 库已注入主 html 页面,而不是 gwt iframe。然后,您可以确定 window
和 document
是您期望的意思。
这可以通过简单地在 html 文件中创建 <script>
标签来完成,就像通常所做的那样,或者如果使用 ScriptInjector.fromUrl
方法,调用 .setWindow(ScriptInjector.TOP_WINDOW)
在上面。
然后,在您的 JSNI 中(请不要编写 JSNI,而是使用 JsInterop),引用带有 $wnd
前缀的库。在JsInterop中,只要建模你打算与之交互的对象,并正确标记命名空间,编译器就会根据需要插入$wnd
。
使用 Js Interop,您可以为您的 js 库编写一个接口,然后从 GWT 中使用它,因为它是 Java。
很可能有人已经为您编写了接口(如果它是一个通用库)。
这里有更多关于 Interop 的信息:http://www.luigibifulco.it/blog/en/blog/gwt-2-8-0-jsinterop
我想在 GWT 中使用第 3 方 JS 库。我知道您可以使用 GWT JSNI - http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsJSNI.html
如该文档中所述,您需要使用 $doc
而不是 document
。您如何使用使用 document
的第 3 方库?
这不是重复的,因为它专门询问第 3 方库中使用的关键字 document
,而不是一般如何在 GWT 中使用 JS。
确保 JS 库已注入主 html 页面,而不是 gwt iframe。然后,您可以确定 window
和 document
是您期望的意思。
这可以通过简单地在 html 文件中创建 <script>
标签来完成,就像通常所做的那样,或者如果使用 ScriptInjector.fromUrl
方法,调用 .setWindow(ScriptInjector.TOP_WINDOW)
在上面。
然后,在您的 JSNI 中(请不要编写 JSNI,而是使用 JsInterop),引用带有 $wnd
前缀的库。在JsInterop中,只要建模你打算与之交互的对象,并正确标记命名空间,编译器就会根据需要插入$wnd
。
使用 Js Interop,您可以为您的 js 库编写一个接口,然后从 GWT 中使用它,因为它是 Java。
很可能有人已经为您编写了接口(如果它是一个通用库)。
这里有更多关于 Interop 的信息:http://www.luigibifulco.it/blog/en/blog/gwt-2-8-0-jsinterop