UiBinderによって作成された要素の要素IDを受け入れるjavascript関数をGWTから呼び出したいとします。その要素が見つからないため、関数が失敗します。いくつかのデバッグ後、私はこの奇妙な行動を発見した:中DOM要素がGWTネイティブ関数から呼び出されたjavascriptからアクセスできない
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"));
}-*/;
両方ScriptInjector
とネイティブ関数は、要素へのアクセスが制限されているようですDOM#getElementById
と比較してこの行動の理由は何ですか?どうすればその要素にアクセスできるようにjavascript関数を呼び出すことができますか?
gwt 2.8.0-beta1と2.8.0-rc1を同じ結果で使用しようとしました。