[英]GWT and Javascript
无法从GWT java类中的javascript调用javamethod。
请从下面找到代码片段。
package abc;
public class jsclass extends Composite {
public native boolean getOnlineSchedlueResult() /*-{
function listener(event) {
//alert("getOnlineScheduleResult called 2 Outside");
var data = JSON.parse(event.data);
if(data.FinderSuccess == true){
parent.onlineMoveNavigation = this.@abc.jsclass::onlineMoveNavigation()();
}
}
if (parent.addEventListener){
//alert("parent getOnlineScheduleResult called 3");
parent.addEventListener("message", listener, false);
//alert("getOnlineScheduleResult called 3A");
parent.postMessage("test", "*");
} else {
//alert("getOnlineScheduleResult called 4");
parent.attachEvent("onmessage", listener);
parent.postMessage("test", "*");
}
}-*/;
public void onlineMoveNavigation(){
GWT.log("onlineMoveNavigation called");
presenter.moveNavigationNext();
}
}
当浏览器调用listener
器时, this
关键字不会对您的jsclass
实例求值。
您必须将 jsclass
实例绑定到可以从listener
功能/闭包中引用的变量。
var self = this;
function listener() {
//alert("getOnlineScheduleResult called 2 Outside");
var data = JSON.parse(event.data);
if(data.FinderSuccess == true){
parent.onlineMoveNavigation = self.@abc.jsclass::onlineMoveNavigation()();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.