gpt4 book ai didi

java - 获取 GWT 面板的内部 DIV 元素和 id

转载 作者:行者123 更新时间:2023-11-28 09:35:48 25 4
gpt4 key购买 nike

我有一个应用程序有这个 JSNI,需要通过容器 id 传递,我在其中传递一个 DIV id:

HTML:

<div class='example-waveform' id='example4'></div>

JAVA:

initWave("example4");

public native void initWave(String __id)/*-{
var instance = this;
var data = $wnd.data = [];
var waveform = $wnd._waveform = new $wnd.Waveform({
container: $doc.getElementById(__id),
interpolate: false
});
}-*/;

这工作正常,但是我需要使用 GWT 容器而不仅仅是 HTML div。

我尝试过:

HTMLPanel container = new HTMLPanel("Test");
container.getElement().setId("someid");

String id = container.getElement().getId();
initWave(id);

但是Javascript函数无法接受我传递给它的元素id(我正在使用第三方JS库,所以我无法调试这个)所以我只是假设我只需要传递一个DIV id,但是 DIV 可以,但我需要一个 GWT 小部件,我可以在 GWT UI 中进行操作,例如显示/隐藏等。

在这种情况下,有没有办法获取 GWT 面板(HTMLPanel 或 VerticalPanel)的 DIV 元素和 id,以便我可以将其传递到我的 JSNI 函数。

最佳答案

这一定是与您调用方法的顺序相关的错误,或者是在使用第 3 方库时出现的错误。此代码在 GWT 2.4.0 中运行得非常好。:

final HTMLPanel container = new HTMLPanel("Test");
container.getElement().setId("someid");

container.addAttachHandler(new Handler() {

@Override
public void onAttachOrDetach(AttachEvent event) {
initWave(container.getElement().getId());
}});

RootPanel.get().add(container);

initWave 为:

public native void initWave(String __id)/*-{
var x = $doc.getElementById(__id);
alert(x.innerHTML);
}-*/;

适用于 SimplePanel 和 HTMLPanel!

关于java - 获取 GWT 面板的内部 DIV 元素和 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13068073/

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