[英]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.