Esta es la base de cómo está escrito mi documento. Tengo un archivo JavaScript externo colocado en la parte superior del elemento de cabecera. Debajo de él, tengo el código del contenido de las referencias. Esperaría que ya que el código está debajo del archivo funcionaría, pero no lo hace. Solo funciona si envuelvo el código en una función window.onload(). O si pongo el código en un script en el elemento body.

<html>
    <head>
        <script type="text/javascript" src="myJavaScript.js"></script>
        <script type="text/javascript">
            console.log(w); // w is a variable inside myJavaScript.js but throws an error stating "w is not defined".
        </script>
    </head>
    <body></body>
</html>

¿Por qué este código se comporta de esta manera? Tengo el archivo escrito en la parte superior del código que llama contenido dentro de él, pero todavía no funciona.

EDITAR: Encontré el error y fue que no estaba definiendo el código en myJavaScript.js en el ámbito global. Es por eso que la variable w nunca pasó.

0
0x499602D2 21 ago. 2011 a las 00:25

3 respuestas

La mejor respuesta

Tendría que mostrarnos el código relevante en myJavaScript.js para que sepamos lo que realmente está sucediendo, pero está bastante claro que cualquiera de w no está definido en el ámbito global en myJavasScript.js o myJavaScript.js no se está cargando correctamente.

Lo más probable es que w no sea en realidad una variable de alcance global como crees que es.

2
jfriend00 20 ago. 2011 a las 20:29

No puedo reproducir tus problemas. Probablemente no haya definido su variable "w" o la haya definido fuera del alcance global

http://sandbox.phpcode.eu/g/686fb

Intenta agregar en la parte superior de la cabeza:

var w = "";
2
genesis 20 ago. 2011 a las 20:28

Dólares a donas, el w se está configurando en un onload.

1
Malvolio 20 ago. 2011 a las 20:29