這是什麼用JavaScript;或者是我做錯了什麼。Javascript變量在外部文件中不可用
file1.js
var 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>
所以,我想另一種方法:
file1.js
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"> 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>
我使用MooTools的(其中Class對象來自),如果你認爲事宜。
更新:我簡化了它的發佈示例,但x.bar()是另一種方法的單擊事件的一部分。但是在一些alert()測試之後,我發現file1實際上並沒有被執行。它實際上是一個用文本/ javascript contenttype發送的.axd文件,所以我不知道爲什麼 - 我必須調查明天。
是的,標籤將在底部。 file1是一個令人討厭的大型JavaScript文件,這就是爲什麼它被分離出來的原因 - 目標是不得不盡可能在客戶端上緩存。它是一個.axd文件,因爲它是從數據庫生成的(Ref數據),我明確設置了過期,壓縮,內容類型和可用性。
更新:經過更多的搗鼓之後,我發現在螢火蟲沒有捕捉的數據中出現錯誤;這只是一個錯誤,並不是一些深層次的技術問題。因此;收盤。
我試圖添加空間,也沒有工作。 =/ – 2008-12-11 22:55:01