簡體   English   中英

JavaScript文件無法動態加載

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM