Estoy teniendo un popover simple con un lienzo dinámico (fragmento a continuación):
$('[data-toggle="popover"]').popover({ html: true, content: '<canvas id="myChart" width="400" height="400"></canvas>', }).on('shown.bs.popover', function() { const ctx = document.getElementById("myChart") alert(ctx.id)Parece que no puedo obtener el elemento myChart, getElementById devuelve un objeto nulo. Supongo que esto tiene que ver con el hecho de que el elemento canvas aún no está insertado en el DOM, pero como tengo poco conocimiento sobre Javascript, no estoy seguro de cómo solucionar ese problema para poder obtener el objeto canvas. y mostrar un gráfico en él.
¿Alguna sugerencia?
Descubrí lo que se necesitaba para hacerlo funcionar, tan inesperado. Necesitaba desactivar la desinfección automática con:
$('[data-toggle="popover"]').popover({ html: true, content: '<canvas id="myChart" width="400" height="400"></canvas>', sanitize: false }).on('shown.bs.popover', function() {