我的目标是使用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代码。