我有一個部分是加載兩個腳本。第二個腳本在第一個腳本中調用一個函數......兩個腳本都使用「use strict」在頂部。當第二個腳本在第一個腳本中調用該函數時,出現「Uncaught ReferenceError 函數名稱未定義」。爲什麼'使用嚴格'導致函數未定義
起初我認爲它與腳本的順序有關,但經過一些調試後,我發現腳本按正確的順序執行。部分加載通過jquery異步調用,並且僅附加到當前視圖。另外,我可以在chrome的調試器中調用第一個腳本的函數,直到第二個文件被加載。
我有點瘋了,只是砍掉了一切,它仍然在發生。這裏就是我的工作......
腳本1
"use strict";
var firstScript = function() {
alert("first");
};
腳本2
"use strict";
var secondScript = function() {
alert("second");
};
Ajax調用
$.ajax({
type: "post",
url: "/../SomeController/SomeAction",
success: function (content) {
$("#someDiv").html(content);
}
});
部分
<script src="~/Some/Folder/Js/Script1.js"></script>
<script src="~/Some/Folder/Js/Script2.js"></script>
加載頁面後,我打開chrome調試器,並執行「firstScript()」或「secondScript()」引發相同的錯誤。
但是,如果我取出use strict;
他們都工作的兩個文件。這裏到底發生了什麼?
那真的是這些腳本文件的**完整內容嗎? – Pointy
它們的順序是否正確?即你在包含之前調用'secondScript'嗎? –
我正在使用它與asp.net獲取實際內容 – user2579064