Est-ce quelque chose avec javascript; ou est-ce autre chose que je fais mal?Javascript Variable non disponible en fichier externe
file1.js
fichiervar collection = new Object(); collection.foo = new Array(1, 2, 3);
2.js
var someClass = new Class({ bar : function() { alert(collection.foo.length); } });
index.html
<script type="text/javascript" src="file1.js"></script> <script type="text/javascript" src="file2.js"></script> <script type="text/javascript"> var x = new someClass(); x.bar(); //cannot find collection </script>
donc j'ai essayé une autre approche:
file1.js
fichiercollection.foo = new Array(1, 2, 3);
2.js
var someClass = new Class({ bar : function() { alert(collection.foo.length); } });
index.html
<script type="text/javascript"> var collection = new Object(); </script> <script type="text/javascript" src="file1.js"></script> <script type="text/javascript" src="file2.js"></script> <script type="text/javascript"> var x = new someClass(); x.bar(); //cannot find collection.foo </script>
J'utilise MooTools (où l'objet de classe vient) si vous pensez que les questions. Je l'ai simplifié pour l'exemple, mais le x.bar() fait partie d'un événement click pour une autre méthode. Mais après quelques tests alert(), j'ai découvert que file1 n'était pas en cours d'exécution. C'est en fait un fichier .axd envoyé avec le text/javascript contenttype, donc je ne sais pas pourquoi - je vais devoir enquêter demain.
Et oui, les étiquettes seront en bas. file1 est un gros fichier javascript ennuyeux, c'est pourquoi il est séparé - le but est de mettre en cache sur le client autant que possible humainement. C'est un fichier .axd car il est généré à partir de la base de données (Ref data) et je définis explicitement les expires, la compression, le contenttype et la cachability.
Mise à jour: Après plus de bidouillage, j'ai compris qu'il y avait une erreur dans les données générées que firebug n'attirait pas; et c'était juste un bug, pas un problème technique profond. En tant que tel; fermeture.
J'ai essayé d'ajouter de l'espace, cela n'a pas fonctionné non plus. =/ –