Можно ли заменить известный элемент html моим компонентом виджета? (Акцент на слово "заменить", я не хочу помещать виджет в этот элемент.:)
<body>
<img />
<div />
<a id="tmpEl" />
...
<img />
</body>
станет
<body>
<img />
<div />
<div class="gwt-panel">...</div>
...
<img />
</body>
Я пробовал что-то вроде этого...
tmpEl.getParentElement().replaceChild(myPanel.getElement(), tmpEl);
... но результирующие элементы DOM были "глухими", то есть они не получали события щелчка. (Чтобы выполнить эту работу, мне, вероятно, придется вызвать RootPanel.get(). Accept (widget), но этот метод недоступен.)
На секунду я подумал, что HTMLPanel.addAndReplaceElement может быть ответом, но это работает только тогда, когда ваш элемент "placeholder" является (прямым) дочерним виджета HTMLPanel. Это, очевидно, не мое дело.: (
Обратите внимание, что я знаю только идентификатор этого элемента, я его не создаю. Проще говоря: мне нужно точно, что говорит вопрос.
Что касается "DOM-манипуляции на более высоком уровне": я с радостью смогу манипулировать DOM на максимально возможном уровне, если он позволяет мне размещать виджет вместо этого элемента-заполнителя.