[英]Javascript file does not load dynamically
我正在使用此答案,這是一個非常流行的SO帖子,用於動態加載javascript文件:
$.getScript("scripts/datagrid.js", function(){
alert("Script loaded but not necessarily executed.");
});
但是它永遠不會加載。 在調用此腳本加載功能的js文件之前 ,標頭中的基礎HTML文件中引用了JQuery。 此外,直到文檔加載后,我才調用此腳本加載器:
$(document).ready(function() {
administration.init();
});
var administration = {
...
init : function() {
try {
$.getScript("scripts/datagrid.js", function(){
alert("Script loaded but not necessarily executed.");
});
} catch (e) {
alert('[administration.init] error = ' + e);
}
...
我已經通過檢查使用JQuery在HTML中進行硬編碼的元素的值來驗證是否已加載JQuery。 執行腳本的事實也驗證了這一點。
如果將腳本文件添加到HTML標頭中,則該腳本文件存在並且可以正常工作,但是我想動態加載它。
為什么匿名函數永遠不會觸發(顯然是因為腳本永遠不會加載-為什么)?
編輯
按照Sanjay的建議,我將錯誤處理程序綁定到ajax調用,控制台現在顯示以下內容:
TypeError: Cannot read property 'init' of undefined(…)
因此,它正在查找文件,只是顯然無法找到該類的init函數。
你應該嘗試加載script
像
$.getScript( "ajax/test.js" )
.done(function( script, textStatus ) {
console.log( textStatus );
})
.fail(function( jqxhr, settings, exception ) {
console.log( exception ); // here you can get reason why file is not loading
});
您可以在此處查看Not Found
控制台錯誤jsfiddl
使用如下順序更改代碼:(刪除try / hide並使用事件處理程序進行調試)在聲明后調用它。
if(!jQuery){alert("No jQuery loaded")}
var administration = {
init : function() {
$.getScript( "scripts/datagrid.js" )
.done(function( script, textStatus ) {
console.log( textStatus );
})
.fail(function( jqxhr, settings, exception ) {
alert("exception:"+ exception );
});
}
};
$(document).ready(function() {
administration.init();
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.