2011-06-22 17 views
6

¿Esto es posible?¿Cómo obtener los contenidos de un archivo js incluido sin xhr?

<html> 
    <script src="local.js> 
    <script> 
    // get contents of local.js file here without doing an ajax call? 
    </script> 
</html> 

local.js reside en el mismo servidor, y sé que al hacer una llamada xhr puedo conseguir su contenido (si no en file: //).

Pero, como el buscador ya lo solicita sincrónicamente, su contenido es conocido por el documento, así que espero que haya una forma de acceder a él. La colección document.scripts no fue de ayuda para mí.

¿Algo así como obtener innerHTML (que funciona para scripts definidos in-page)?

+0

¿Podría explicar lo que está tratando de lograr? – Peeter

Respuesta

1

No estoy seguro de cómo obtener el código de javascript incluido, ni por qué lo necesitaría, pero ¿qué tal si vamos en la otra dirección?

En lugar de tener una etiqueta de secuencia de comandos, realice una llamada XHR al archivo y evalúe su contenido + conserve también su contenido como una variable.

** Descargo de responsabilidad: No puedo entender por qué necesitaría esto, ni le sugiero que use este método, pero es una solución.

-1

sospecho que, si bien el contenido de la secuencia de comandos se sabe que el navegador, no son conocidos por el documento, y por lo tanto no son accesibles a través de la API de DOM. Entonces tendrá que usar el enfoque XHR. Con un poco de suerte, si se asegura de que la secuencia de comandos está correctamente almacenada en caché, la solicitud de XHR extraerá los contenidos del script de la memoria caché local de todos modos.

1

¿Está asumiendo que XHR no usará la versión en caché? Lo hará, puede haber una solicitud, pero debe ser rápido (reutilizar la misma conexión HTTP) y devolver 304 (no modificado). Por lo tanto, la versión almacenada en caché se usará a menos que los encabezados de respuesta HTTP del archivo JavaScript prohíban o no especifiquen las directivas de caché (pero normalmente deberían hacerlo).

Cuestiones relacionadas