Можно ли заменить известный элемент 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 на максимально возможном уровне, если он позволит мне разместить виджет вместо этого элемента-заполнителя.