Возможно ли заменить известный элемент html с моим компонентом виджета? (Акцент на слове «заменить», я не хочу, чтобы поместить виджет в этот элемент. :)Как заменить элемент на мой виджет GWT?
<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(). Принять (виджет), но этот метод не доступен.)
На секунду я подумал HTMLPanel.addAndReplaceElement может быть ответ, но это работает только тогда, когда ваш элемент «placeholder» является (прямым) дочерним элементом виджета HTMLPanel. Это, очевидно, не мое дело. . :(
Примечание пожалуйста, что я знаю только идентификатор этого элемента, я не создаю его Проще говоря: мне нужно именно то, что говорит вопрос
Что касается "манипулирования DOM на более высоком уровне. Я счастливо манипулировать DOM на максимально высоком уровне, если это позволяет мне поместить виджет вместо этого шаблонного элемента
Это в основном решение я уже упоминал в оригинальный вопрос, и он не работает. Только это вместо replaceChild вы использовали removeChild + appendChild. Кроме того, с помощью appendChild вы помещаете элемент в самый конец своего родителя, что необязательно там, где мог бы быть местозаполнитель. –
Я должен сказать, что у меня такое чувство, что вы делаете что-то неправильно здесь - это не похоже на стиль gwt, по крайней мере, на меня. – markovuksanovic
Вы подключили виджет к родительскому виджету? Таким образом, виджет не будет автоматически подключен. – markovuksanovic