javascript - GWT 包括模块 list 中的外部 javascript 文件

标签 javascript gwt manifest

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

我有这个名为 iscroll.js 的 javascript 文件,它存储在 GWT 项目的 war/文件夹中。

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

<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)

最佳答案

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

关于javascript - GWT 包括模块 list 中的外部 javascript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4431675/

相关文章:

html - 在 appcache 的缓存区使用通配符

maven-2 - 如何在 Maven 项目中设置作者姓名?

delphi - 从 Delphi 应用程序发送 WM_COPY。到 Windows 7 中的另一个进程

javascript - 根据 div id 应用更改

javascript - 如何从异步调用返回响应?

java - 已弃用的 GWT Textbox setKey(char) 方法的替代方法

java - 如何在SmartGWT中的DynamicForm的StaticTextItem组件上应用样式?

java - 我可以将参数传递给 GWT 模块构造函数吗?

javascript - 了解 JavaScript For 循环

javascript - 未设置 CORS header - 我可以请求图像 url,然后将其返回给自己吗?