我想在GWT中使用第三方JS库。我知道您可以使用GWT JSNI - http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsJSNI.html
正如该文档中所述,您需要使用$doc
而不是document
。您如何使用使用document
的第三方库?
这不是重复,因为它具体询问第三方库中使用的关键字document
,而不是一般如何在GWT中使用JS。
答案 0 :(得分:4)
确保将JS库注入主html页面,而不是gwt iframe。然后,您可以确定window
和document
表示您希望它们的含义。
这可以通过简单地在html文件中创建<script>
标记来完成,或者使用ScriptInjector.fromUrl
方法,在其上调用.setWindow(ScriptInjector.TOP_WINDOW)
。
然后,在你的JSNI中(请不要编写JSNI,改为使用JsInterop),引用带有$wnd
前缀的库。在JsInterop中,只需为要与之交互的对象建模,并正确标记命名空间,编译器将根据需要插入$wnd
。
答案 1 :(得分:1)
使用Js Interop,您可以编写一个js库的接口,然后在GWT中使用它,因为它是Java。
很可能有人已经为你编写了一个界面(如果它是一个常见的lib)。
有关Interop的更多信息:http://www.luigibifulco.it/blog/en/blog/gwt-2-8-0-jsinterop