Supongamos que tengo el siguiente script, llamado include_strict.js
. Después se ejecuta debería haber definido window.global1
:"use strict"; + jQuery.getScript() = el script no puede exportar al espacio de nombres global
"use strict";
var globalVar = {};
alert(typeof window.globalVar);
Pero si lo incluyo en un bloque de Javascript con
$.getScript("include_strict.js");
La alerta dice undefined
. ¿Por qué? ¿Que esta pasando aqui?
su información, eso no es lo que ocurre si incluyo el archivo con una etiqueta de script:
<script type="text/javascript" src="include_strict.js"></script>
Aquí, ver la alerta esperado, object
. Y si elimino "use strict";
, entonces jQuery.getScript()
y <script>;
tienen el mismo efecto de mostrar object
.
He creado un ejemplo (https://docs.google.com/file/d/0B-XXu97sL1Ckb0x0OHptTmVMY00/edit) para demostrar esto.
Me venció por algunos segundos ;-) – Prinzhorn
muy interesante. Me encontré con este tema por primera vez y tiene mucho sentido. Mi problema es que necesito ejecutar varios scripts en orden después de que se carguen, así que necesito saber cuándo se cargó el script antes de agregar el siguiente script. ¿Hay alguna manera de saber cuándo se ha cargado un script si utilizo el método de agregar el script al DOM? ¿funcionaría .load()? – Redtopia