![](/img/trans.png)
[英]How to get the return value of the callback function from a request which is exported as a module
[英]How to get return value to eclipse function from java script function which get data from ajax request using SWT browser?
我在下面尝试过...
我在Eclipse中有此功能:我在Java中有一个按钮,可在javascript中触发此功能
Object status = browserCtrl.evaluate("return atm.java.webToJavaPerspective()");
然后我在javascript中有此功能
function atm.java.webToJavaPerspective(){
returnData = {};
//ajaxRequest = some ajaxRequest variable
$.when(ajaxRequest).then(function( data, textStatus, jqXHR ) {
//modify the data
returnData.textStatus = textStatus;
//this return statement should return data to java function
return returnData;
});
//this will return empty object
return returnData;
}
但我总是空着东西。 因为ajax请求需要几秒钟的时间,并且我的javascript函数返回了一个空对象insted,等待请求返回数据。
我该如何实现..?
处理Ajax调用时,必须在获得结果后从Javascript代码中调用所谓的BrowserFuntion
。
这是一个如何定义BrowserFunction
以及如何从Javascript调用它的示例:
public static void main(String[] args)
{
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
Browser browser = new Browser(shell, SWT.NONE);
browser.setText("<a href='#' onClick='theJavaFunction()'>Click me!</a>");
new BrowserFunction(browser, "theJavaFunction")
{
@Override
public Object function(Object[] objects)
{
System.out.println("Call from Javascript");
return null;
}
};
shell.pack();
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
{
display.sleep();
}
}
}
此外,这里还有来自Vogella的有关Browser
的出色教程:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.