gpt4 book ai didi

java - 如何从 HTML 和 javascript 制作 GWT 小部件?

转载 作者:行者123 更新时间:2023-12-04 05:37:56 26 4
gpt4 key购买 nike

我需要从 HTML 和 javascript 代码制作一个自定义的 GWT 小部件。应在小部件上调用 javascript 代码,但 javascript 应接收小部件 DOM 组件作为参数。

此外,小部件的 HTML 必须直接依赖于提供给小部件构造函数的参数。

这样做的“惯用”方式是什么?

最佳答案

这很简单。您可以从扩展 Widget 开始类。

要创建 DOM 表示,您需要使用 Document.get() (或其他旧 api 取决于您喜欢什么)。
要调用外部 javascript,您需要使用 JSNI .

您还必须覆盖 onDetachonAttach方法,因此您可以在将元素添加到 dom 时通知外部 JS,以及何时外部 JS 应该执行一些清理(如果需要)。

示例代码:

public class MyWidget extends Widget{

public MyWidget(String params) {
Document document = Document.get();
DivElement divElement = document.createDiv();
divElement.setInnerHtml(params);
setElement(divElement); //important, widget needs to know it's root element
}


private static native void doJsMagic(Element element)/*-{ //notifies js about element
$wnd.doSomething(element);
}-*/;

private static native void undoJsMagic(Element element)/*-{
//notifies js that it should do some cleanup (if needed)
//since it is unaware of GWT widget lifecycle
$wnd.undoSomething(element)

}-*/;

@Override
public void onAttach() {
super.onAttach();
doJsMagic(getElement());
}

@Override
public void onDetach() {
super.onDetach();
undoJsMagic(getElement());
}

}

关于java - 如何从 HTML 和 javascript 制作 GWT 小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11691624/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com