【发布时间】:2012-07-11 07:49:53
【问题描述】:
概述
- 有一个GWT方法叫做:
private void handleError() - 有一个JSNI Javascript函数叫做:
private native void registerErrorHandler() - 本机 javascript 函数从第三方 Javascript 库调用另一个函数:
foo.attachEvent("EventName", handlerReference);
功能
我需要将 GWT 方法作为函数参数传递给foo.attachEvent() 函数,我尝试了几种方法:
foo.attachEvent("Error", registerErrorHandler); ->
类型不匹配异常
foo.attachEvent("Error", this.@package.foo::registerErrorHandler()); ->
类型不匹配异常
var handler = this.@package.foo::registerErrorHandler()();
foo.attachEvent("Error", handler);
-> 类型不匹配异常
纯 Javascript
当我用纯 Javascript 编写此代码时,它正在工作:
function handleError() {
alert("Error");
}
function registerErrorHandler() {
var event = "Error";
var handler = handleError;
foo.attachEvent (event, handler);
}
如何在 GWT 中实现它?我在完全理解 Javascript - Java Objects 转换时遇到了很多问题。我将handleError 函数引用理解为JavaScriptObject,但我无法使用该信息使其工作。
【问题讨论】:
-
GWT 必须在 RootLayoutPanel 中执行 - 这是一个完整的页面。您不能将 Javascript 与 GWT 生成的函数混合使用。 GWT 的目的不是这个。
标签: java javascript gwt jsni