0

Estoy desarrollando un proyecto en el que cargo archivos con Ajax.
El tema es que si dentro de uno de los archivos que cargo con ajax, ejecuto una funcion JS, esta no se ejecuta. Por lo que decidi retornar el codigo junto al contenido del archivo dentro de un JSON, este lo separo y cargo el contenido de la pagina por un lado y pretendo cargar las funciones JS por otro.
Como tendria que ejecutar esa cadena que contiene codigos JS?

Ejemplo Archivo que envio

print json_encode(array(
    "body"   => "Hola Mundo",
    "script" => "console.log('Hola');"
));

Ejemplo de Recepcion

var body = JSON.parse(this.responseText).body;
var script = JSON.parse(this.responseText).script;
tag.innerHTML = body;

En este punto ya puedo mostrar en pantalla el contenido que envio para el body, pero no se me ocurre como ejecutar el codigo JS que envio.
Estoy atento a sus propuestas e ideas.
Saludos!

2 Answers2

1

No me gusta mucho la idea que planteas porque puede darte graves problemas de seguridad...

Prueba este código:

    var body =  JSON.parse(this.responseText).body;
    var script = JSON.parse(this.responseText).script;
    tag.innerHTML = body;
    eval(script);

Te aconsejaría atacar el problema de otra forma(sin más datos no te sabría decir más).

0

Podrias solo regresar el mensaje e insertarlo en el script

ejemplo:

 print json_encode(array(
    "body"   => "Hola Mundo",
    "script" => "Hola"
));

en el front

var script = JSON.parse(this.responseText).script;
console.log(script);

no se cual sean tus requerimientos por que necesitas regresar un script

jcHernande2
  • 3,294
  • 1
  • 5
  • 15