GWT, включая внешний файл javascript из манифеста модуля - PullRequest
7 голосов
/ 13 декабря 2010

Итак, я прочитал документацию о включении внешнего файла Javascript непосредственно в манифест модуля yourApplication.gwt.xml (http://code.google.com/webtoolkit/doc/latest/DevGuideOrganizingProjects.html)

. У меня есть этот файл JavaScript с именем iscroll.js, который хранится в папке war / на GWT.project.

Я добавил строку в манифест модуля моего приложения GWT:

<script src="iscroll.js"/>

Затем из метода onModuleLoad() я вызываю этот собственный метод JSNI:

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

Затем, когда я запускаю код в браузере, я получаю сообщение «iScroll не определен».

Есть идеи, что я делаю не так?

Это вывод «iScroll isнеопределенная ошибка "

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)

1 Ответ

11 голосов
/ 14 декабря 2010

Вам нужно поместить файл JavaScript в общую папку, см. Этот ответ на стеке потока о том, как это работает: файлы gwt и javascript и вызов iScroll(.. должен быть $wnd.iScroll(...

...