¿Es posible reemplazar elemento html conocido con mi componente widget? (Énfasis en la palabra 'reemplazar', no quiero poner el widget en ese elemento. :)¿Cómo reemplazar el elemento con mi widget GWT?
<body>
<img />
<div />
<a id="tmpEl" />
...
<img />
</body>
se convertiría en
<body>
<img />
<div />
<div class="gwt-panel">...</div>
...
<img />
</body>
Probé algo como esto ...
tmpEl.getParentElement().replaceChild(myPanel.getElement(), tmpEl);
... pero los elementos DOM resultantes fueron 'sordos', es decir, no recibieron eventos de clic. (Para realizar este trabajo que probablemente tendría que llamar RootPanel.get(). Adoptan (Widget), pero ese método no es accesible.)
Por un segundo pensé HTMLPanel.addAndReplaceElement podría ser la respuesta, pero eso solo funciona cuando su elemento 'marcador de posición' es hijo (directo) del widget HTMLPanel. Lo cual obviamente no es mi caso. . :(
Nota por favor que sólo sabe Identificación de ese elemento, no estoy creando En pocas palabras: Necesito exactamente lo que dice la pregunta
En cuanto a la 'manipulación DOM en el nivel más alto'. : con mucho gusto manipular el DOM al más alto nivel posible si se me permite colocar widget de cambio de ese elemento marcador de posición
Eso es, básicamente, la solución que he mencionado en la pregunta original, y no funciona. Solo que en lugar de replaceChild usaste removeChild + appendChild. También con appendChild pone el elemento al final de su elemento principal, que no es necesariamente donde podría haber estado el marcador de posición. –
Debo decir que tengo la sensación de que estás haciendo algo mal aquí: no se parece al estilo gwt, al menos no para mí. – markovuksanovic
¿Ha adjuntado el widget a un widget principal? De esta forma, el widget no se adjuntará automáticamente. – markovuksanovic