Me veo en la obligación de crear un sitio web dinámico usando JQuery. Pero tengo un problema al realizar cargas AJAX:
Si usamos la función $.load anda perfecto, es fácil y funciona bien. El problema surge al intentar cargar un contenido con ID específico, ya que no carga los scripts contenidos. Todo funciona bien si cargamos el sitio completo:
Código:
de esta forma carga los scripts y todo correctamente, pero al realizar la consulta asignando la ID específica del sitio a cargar:$('#idDiv').load("index2.html");
Código:
este no carga los scripts.$('#idDiv').load("index2.html #idDiv");
He intentado usar $.ajax(). Pero el resultado es el mismo, además con esta función no puedo cargar un div con ID específica o no se como hacerlo.
Se me ocurre lo siguiente:
Si usamos $.ajax() de JQuery e indicamos la URL a cargar, usamos success para indicar el comportamiento que realizará la operación:
Código:
De esta forma cargamos el sitio completo en #idDiv al igual que $.load() sin indicar #id. Donde los script funcionan correctamente, pero no hemos podido elegir un #id o .class específico.$.ajax( { url: "index2.html", success: function(data){ $('#idDiv').html(data); } });
Pero según me he podido percatar, la variable "data" que retorna la función es un string o cadena que contiene la estructura del sitio de destino, y se me ocurre poder extraer el #id desde esa variable resultante.
He tratado de pasar la variable data a Element, sin resultado.
Estoy casi seguro de que así funcionaría, si es que no hay otra forma mas óptima de hacerlo.
El punto es como hacer una especie de getElementByID(); para esa variable de tipo String, o si es posible transformarla y hacer el proceso de extracción y luego volverla a String o dejarla tal cual para cargarla al sitio Nº 1.
Sé que este problema se evita si desde el sitio Nº 1 cargamos todos los JavaScript, pero hay veces en donde no es posible, como por ejemplo al usar ReCaptcha, donde su API entrega el JavaScript y no quero manipular el código fuente.
Espero alguien con mas experiencia tenga la solución.
Saludos.