GWT 包括来自模块清单的外部 javascript 文件

发布于 2024-10-07 09:19:19 字数 2700 浏览 1 评论 0原文

因此,我阅读了有关直接在模块清单 yourApplication.gwt.xml (http://code.google.com/webtoolkit/doc/latest/DevGuideOrganizingProjects.html) 中包含外部 Javascript 文件的文档,

我有一个名为 iscroll 的 javascript 文件。 js 并存储在 GWT 项目的 war/ 文件夹中。

我将这一行添加到 GWT 应用程序的模块清单中:

<script src="iscroll.js"/>

然后,从 onModuleLoad() 方法中,我调用此本机 JSNI 方法:

private native void initJavascript() /*-{
  $wnd.myScroll = new iScroll('jokeWrapperLabel');
}-*/;

然后,当我在浏览器中运行代码时,我不断收到“iScroll is undefined” ”。

知道我做错了什么吗?

这是“iScroll 未定义错误”的输出

18:32:41.780 [ERROR] [jollyjokesprogwt] Unable to load module entry point class com.wanderlust.jollyjokespro.gwt.client.JollyJokesProGWT (see associated exception for details)
com.google.gwt.core.client.JavaScriptException: (ReferenceError): iScroll is not defined
 stack: ReferenceError: iScroll is not defined
    at [object Object].<anonymous> (unknown source)
    at __gwt_jsInvoke (http://127.0.0.1:8888/jollyjokesprogwt/hosted.html?jollyjokesprogwt:76:35)
    at http://127.0.0.1:8888/jollyjokesprogwt/hosted.html?jollyjokesprogwt:280:16
    at C (http://127.0.0.1:8888/jollyjokesprogwt/jollyjokesprogwt.nocache.js:2:148)
    at http://127.0.0.1:8888/jollyjokesprogwt/jollyjokesprogwt.nocache.js:8:593
 type: not_defined
 arguments: iScroll
 __gwt_ObjectId: 91
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:237)
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:126)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeVoid(ModuleSpace.java:289)
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:107)
    at com.wanderlust.jollyjokespro.gwt.client.JollyJokesProGWT.initJavascript(JollyJokesProGWT.java)
    at com.wanderlust.jollyjokespro.gwt.client.JollyJokesProGWT.onModuleLoad(JollyJokesProGWT.java:228)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:396)
    at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:183)
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:510)
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:352)
    at java.lang.Thread.run(Unknown Source)

So I read the documentation about including an external Javascript file directly in the module manifest yourApplication.gwt.xml (http://code.google.com/webtoolkit/doc/latest/DevGuideOrganizingProjects.html)

I have this javascript file called iscroll.js and stored in the war/ folder of the GWT project.

I added the line to the module's manifest of my GWT application:

<script src="iscroll.js"/>

Then from the onModuleLoad() method I call this native JSNI method:

private native void initJavascript() /*-{
  $wnd.myScroll = new iScroll('jokeWrapperLabel');
}-*/;

Then when I run the code in the browser I keep getting "iScroll is undefined".

Any idea what am I doing wrong?

This is the output of the "iScroll is undefined error"

18:32:41.780 [ERROR] [jollyjokesprogwt] Unable to load module entry point class com.wanderlust.jollyjokespro.gwt.client.JollyJokesProGWT (see associated exception for details)
com.google.gwt.core.client.JavaScriptException: (ReferenceError): iScroll is not defined
 stack: ReferenceError: iScroll is not defined
    at [object Object].<anonymous> (unknown source)
    at __gwt_jsInvoke (http://127.0.0.1:8888/jollyjokesprogwt/hosted.html?jollyjokesprogwt:76:35)
    at http://127.0.0.1:8888/jollyjokesprogwt/hosted.html?jollyjokesprogwt:280:16
    at C (http://127.0.0.1:8888/jollyjokesprogwt/jollyjokesprogwt.nocache.js:2:148)
    at http://127.0.0.1:8888/jollyjokesprogwt/jollyjokesprogwt.nocache.js:8:593
 type: not_defined
 arguments: iScroll
 __gwt_ObjectId: 91
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:237)
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:126)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeVoid(ModuleSpace.java:289)
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:107)
    at com.wanderlust.jollyjokespro.gwt.client.JollyJokesProGWT.initJavascript(JollyJokesProGWT.java)
    at com.wanderlust.jollyjokespro.gwt.client.JollyJokesProGWT.onModuleLoad(JollyJokesProGWT.java:228)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:396)
    at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:183)
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:510)
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:352)
    at java.lang.Thread.run(Unknown Source)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黑寡妇 2024-10-14 09:19:19

您需要将 JavaScript 文件放在公共文件夹中,请参阅此 stackoverflow 答案了解其工作原理:gwt 和 javascript文件
并且对 iScroll(..) 的调用必须是 $wnd.iScroll(..)。

You need to place the JavaScript file in a public folder, see this stackoverflow answer on how that works: gwt and javascript files
and the call to iScroll(.. must be $wnd.iScroll(...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文