当试图通过jQuery注入ScriptInjector时,当通过JSNI调用$wnd.$时,引发的错误如下:
由: com.google.gwt.core.client.JavaScriptException:(TypeError):Object object全局没有方法'$‘at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:248) at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136) at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561) at com.google.gwt.dev.shell.ModuleSpace.invokeNativeVoid(com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:107) ( ModuleSpace.java:289)
下面是注入jQuery的代码:
ScriptInjector.fromUrl("http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js")
.setWindow(ScriptInjector.TOP_WINDOW).setCallback(new Callback<Void, Exception>() {
@Override
public void onSuccess(Void arg0) {
GWT.log("Success to load jQuery library");
ScriptInjector.fromUrl("http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js").setWindow(ScriptInjector.TOP_WINDOW).inject();
}
@Override
public void onFailure(Exception arg0) {
GWT.log("Failed to load jQuery library");
}
}).inject();有什么问题吗?
发布于 2013-11-24 22:05:07
正确的语法是使用$wnd.jQuery而不是$wnd.$,我认为它与在gwt iframe中保留$有关。
发布于 2013-11-24 09:07:41
尝试在成功回调中加载jquery片段代码,即当jquery结束时加载。
https://stackoverflow.com/questions/20164434
复制相似问题