Ejecutando Javascript desde un archivo externo cargado con AJAX

He estado tratando de arreglar esto todo el día, pero realmente no puedo resolverlo. Tengo una página con

que se rellena desde un menú basado en tabs y extrae un fragmento de código HTML almacenado en un archivo externo que contiene algunos javascript (principalmente, validación de formularios).

He visto en lugares que necesito evaluar () el código, pero luego, en el mismo lado de las cosas, la gente dice que es lo último que hay que hacer.

Alguien puede indicarme la dirección correcta y, si es posible, dar un ejemplo, ya que soy muy nuevo en jQuery / JavaScript.

Muchas gracias 🙂

extrayendo un fragmento de código HTML almacenado en un archivo externo que contiene algún javascript (principalmente la validación de formularios).

Evita hacer esto. Escribir en innerHTML no hace que el script se ejecute ... aunque mover el elemento después puede causar que se ejecute, en diferentes momentos en diferentes navegadores.

Así que es inconsistente en la práctica, y no tiene ningún sentido incluir guiones de todos modos:

  • cuando cargue el mismo fragmento de código dos veces, ejecutará el mismo script dos veces, lo que podría redefinir algunas de las funciones o variables vinculadas a la página, lo que puede dejarlo en situaciones extremadamente extrañas y difíciles de depurar.

  • los scripts no asíncronos / deferentes esperan ejecutarse en el momento del análisis, y pueden incluir técnicas que no pueden funcionar cuando se insertan en un documento existente (en el caso de document.write esto suele destruir toda la página, un síntoma común cuando se intenta carga de anuncios de terceros / scripts de seguimiento).

Sí, jQuery intenta hacer que algo de esto sea más consistente entre los navegadores extrayendo elementos de script y ejecutándolos. Pero no, no logra arreglar todos los casos (y en principio no puede). Así que no se lo pidas. Mantenga sus scripts estáticos y ejecute cualquier código de script de enlace que deba ocurrir en la callback de carga.

Si obtiene html a través de Ajax, y ese html tiene una etiqueta , y escribe ese html en su documento a través de algo como $('#foo').append(html) , entonces el JS debería ejecutarse inmediatamente sin Cualquier molestia en absoluto.

jquery procesa automáticamente los scripts recibidos en una solicitud ajax al agregar el contenido a su página. Si tiene un problema en particular, publique algún código.

Ver este enlace

dataType: “html”: devuelve HTML como texto sin formato; Las tags de script incluidas se evalúan cuando se insertan en el DOM.