31/07/2009, 12:52
|
(Desactivado) | | Fecha de Ingreso: julio-2009
Mensajes: 76
Antigüedad: 15 años, 3 meses Puntos: 0 | |
Respuesta: Problema imprimiendo javascript desde ajax (algo retorcido) a ver sin poner los hipervínculos... tampoco. Los enlaces son los que están en negrita , la falta poner delante el hachetetepe : //
Si es posible hacerlo, estoy escribiendo una información de tallada en esta dirección aredsc.net/formacion-y-desarrollo/programacion/soluciones/79-ejecutar-javascript-dentro-de-ajax
Sin embargo podéis ver el ejemplo y el código fuente, es fácil de entender sin mucha explicación.
La clave está en la función javascript eval() de forma que la cadena de texto devuelta la interpreta como javascript.
se puede llamar desde ajax a un .js o si se hace a un .php hay que tener cuidado ya que el javascript ha de ser devuelto como si se escibiera en un .js , sin las etiquetas <script> y tener cuidado con las restircciones que nos pueda poner eval como salvar comillas, y quizás algo más.
El ejemplo devuelve document.write y alert llamada desde una funcion que el navegador ejecuta sin problemas
Espero que te sirva.
El enlace del ejemplo y el codigo fuente es este -> manuales.aredsc.net/ejemplos/ajax/ejecutar-javascript-dentro-de-ajax.php
EDITO EL MENSAJE
Solucionado, el tema es que explorer solo permite hacer un document.write()
por lo que habría que ir construyendo la salida y hacer el document.write con todo el contenido, otra forma sería usar document.getElementById().innerHTML o cualquier otro método.
Aunque veo que por ahí arriba pusieron un enlace de un solucion similar que usa execScript(), que no conocía, yo lo hice con eval().
Bueno, el tema es que puede hacerse fácilmente, sólo hay que adaptarlo a las necesidades como limpiar los tag script en caso de que venga con ellos o a las de cada uno en particular.
también sirve para cargar archivos js haciendo la llamada al script.js desde ajax ajax.open('GET','archivo.js',true) y metiendo el resultado en eval(), a partir de ahí a necesidad de cada uno.
Última edición por aredsc; 01/08/2009 a las 10:42 |