Estoy trabajando en una página donde los elementos se cargan a través de AJAX, es un software de tipo CMS y no tengo acceso al ajax , ni sé que son devoluciones de llamada.
Quiero ejecutar mi función cuando se carga una parte específica de la página, ¿cómo puedo hacer esto cuando AJAX está involucrado?
Mi JavaScript, que funciona bien por sí mismo: Fiddle :
var personalitet = document.getElementById("personalitet").innerHTML; document.getElementsByName("form[5553]")[0].value = personalitet;Yo he tratado:
document.getElementById("personalitet").onload = function() { document.addEventListener("DOMContentLoaded", function(event) { window.onload = function(){Ninguno de los cuales funciona, ya que los elementos no se cargan en el momento en que mi script los busca.
Podrías usar un observador de mutaciones.
var observer = new MutationObserver(function(mutations) { for (var i = 0; i < mutations.length; i++) { // PUT ACTIONS HERE console.log(mutations[i].type); } }); var observeElements = { attributes: true, childList: true, characterData: true }; observer.observe(document.body, observeElements);Esto le permitirá saber cuando algo en el cuerpo ha cambiado. Lee más sobre MutationObserver si quieres ser elegante.
Sin embargo, no es rápido y debe investigar si podría abusar de su CMS para no interponerse en su camino. Y necesita llamar a la última línea antes de que ocurra cualquier mutación o no funcionará.