Estoy incluyendo contenido relacionado en misc. páginas web agregando una etiqueta <script>
cerca del final de la etiqueta <body>
, que luego carga otros archivos javascript. El flujo es un poco complicado, así que voy a tratar de explicarlo antes de pedir a mi pregunta:Detener IE cargar secuencia de comandos incluida dinámicamente dos veces
- Un navegador carga una página con nuestro elemento
<script>
cerca del extremo del elemento<body>
- el atributo src de la la etiqueta de script apunta a un archivo javascript que (en algunos casos) inyecta un segundo elemento
<script>
- El atributo src del elemento
<script>
inyectado apunta a otro archivo javascript, que finalmente inyecta algún contenido en la parte apropiada de la página.
Estamos utilizando este enfoque de dos etapas para poder hacer algo de procesamiento básico antes de decidir si se debe incluir el contenido final, que podría tomar algún tiempo para cargar.
El problema es que IE8 (y quizás versiones anteriores) carga el último javascript dos veces. Parece que el acto de establecer el atributo src desencadenará una carga, pero también se agregará la etiqueta de script al DOM. Hay alguna manera de evitar esto?
He creado un bare-bones demo del problema. Si tiene alguna forma de rastrear las solicitudes HTTP, verá que IE8 carga js_test2.js dos veces.
Gracias por esta respuesta muy completa. De hecho, he vuelto a la manera DOM más tradicional, y funciona bien ahora. En cuanto a la separación de la llamada inicial: si recuerdo correctamente copié el código que Google Analytics usa para incluir su script, bajo la suposición (quizás falsa) de que si alguien sabe cómo incluir sólidamente un javascript remoto, es la gente de GA . Gracias por la aclaración. – stiang