gpt4 book ai didi

java - DOM 元素无法通过 GWT native 函数调用的 javascript 访问

转载 作者:行者123 更新时间:2023-12-01 09:31:35 25 4
gpt4 key购买 nike

我想从 GWT 调用一个 javascript 函数,该函数接受 UiBinder 创建的元素的元素 id。函数失败,因为它找不到该元素。经过一些调试后,我发现了这个奇怪的行为:

log.info(DOM.getElementById("MyId").getAttribute("id"));
ScriptInjector.fromString("console.log(document.getElementById(\"MyId\"))").inject();
checkMyId();
log.info(DOM.getElementById("MyId").getAttribute("id"));

结果:

MyId
null
null
MyId

checkId 定义为:

public static native void checkMyId()/*-{
console.log(document.getElementById("MyId"));
}-*/;

DOM#getElementById 相比,ScriptInjector 和 native 函数对元素的访问似乎都受到限制。这种行为的原因是什么?我如何调用 javascript 函数以便它可以访问该元素?

我尝试使用 gwt 2.8.0-beta1 和 2.8.0-rc1 得到相同的结果。

最佳答案

GWT JSNI Basics

When accessing the browser’s window and document objects from JSNI, you must reference them as $wnd and $doc, respectively. Your compiled script runs in a nested frame, and $wnd and $doc are automatically initialized to correctly refer to the host page’s window and document.

关于java - DOM 元素无法通过 GWT native 函数调用的 javascript 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39363448/

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