我的目标是使用JSNI调用Java中的方法,并通过手工编写的javascript代码进行该调用,这就是说:我将在$(document).ready中拥有一个函数,该函数将调用Java中的方法。

我的问题是我不知道首先要加载哪个脚本:GWT脚本还是手写的javascript脚本,因此,我想知道是否存在一种解决方案,可以在加载GWT之后集成$(document).ready来加载如果首先加载GWT,则javascrpit对象窗口尚不知道JSNI方法,并引发错误。

最佳答案

如果要使用纯GWT解决方案,可以利用GWT´s ScriptInjector的优势:

ScriptInjector.fromUrl("http://example.com/foo.js").setCallback(
     new Callback() {
        public void onFailure(Exception reason) {
          Window.alert("Script load failed.");
        }
        public void onSuccess(Void result) {
          Window.alert("Script load success.");
        }
     }).inject();


因此,可以在gwt的onModuleLoad()方法中放置此代码段。这样,您无需编写任何额外的JS代码。

10-07 13:19
查看更多