我正在使用GWT和SMartGWT构建Web应用程序,我需要为照片库集成外部脚本:http://slideshow.triptracker.net/。 我目前的尝试是:
ScriptInjector.fromUrl("http://slideshow.triptracker.net/slide.js").setCallback(
new Callback<Void, Exception>() {
public void onFailure(Exception reason) {
Window.alert("Script load failed.");
}
public void onSuccess(Void result) {
Window.alert("Script load success.");
}
}).inject();
之后,我称这种方法为:
代码:
native static void example(String p) /*-{
$wnd.viewer = new $wnd.PhotoViewer();
$wnd.viewer.add(p)
$wnd.viewer.show(0);
}-*/;
这不会出现任何错误,但照相馆会出现背后我的入口点布局,因此无法使用它。
所以,我试图找到一个解决方法,我想参考Javasript的主要布局,运行脚本。这可能吗?我试过
foo.getElement().getId();
但它返回了类似
的内容 isc_VLayout_0_wrapper
然而,Javascript不喜欢它。
然后我试了
foo.getDOM.getId();
isc_1
但结果并没有改变。
有人可以帮我解决这个问题吗? 谢谢。
答案 0 :(得分:0)
我认为这里有两件事,可能是错的:
您有onSuccess()
个回拨,可以从内部拨打jsni
来电。
//1
ScriptInjector.fromUrl("http://slideshow.triptracker.net/slide.js").setCallback(
new Callback<Void, Exception>() {
public void onFailure(Exception reason) {
//3a
}
public void onSuccess(Void result) {
example("works");
//3b
}
}).inject();
//2
example("not loaded");
您也可以在致电.setWindow(ScriptInjector.TOP_WINDOW)
之前致电.inject()