我有一个用Java(Vaadin框架)编写的应用程序,它正在服务器端工作。我还有一些需要在浏览器中执行的Javascript脚本。 Serwer应该调用某些js函数。为此,我想将javascript对象的实例引用传递给服务器。我在Firefox中测试我的应用程序。
在服务器端,我导出了Javascript应该调用的函数。
JavaScript.getCurrent().addFunction("testfun", new JavaScriptFunction() {
public void call(JSONArray arguments) throws JSONException {
/* ... */
}
});
}
单击按钮时,我在客户端调用它。
var that;
function EventsTest() {
that = this;
}
EventsTest.prototype.init = function() {
/* creating JQuery Button ...*/
btnClick.onclick = function(){
testfun(that);
};
}
注意,我无法在EventsTest函数中调用testfun,因为我需要等待加载Vaadin应用程序。
当我加载应用程序并按下按钮时,firebug会返回错误:
com.vaadin.client.ApplicationConfiguration SEVERE: (InternalError) : too much recursioncom.google.gwt.core.client.JavaScriptException: (InternalError) : too much recursion
我做错了什么?有没有其他办法,我的脚本将在浏览器中运行并由服务器调用?