2017-02-09 21 views
-1

我想更改此代碼以使用回調函數。我希望程序在致電DynamicLoadScriptForEdit()後致電ExecuteScriptForEdit,但此代碼不起作用。如何在javascript中使用回調函數?

window.onload = function() { 
    DynamicLoadScriptForEdit('/temps/F.js', function(err) { 
    ExecuteScriptForEdit(); 
    }); //네트워크가 좋으면 상관없지만 안좋으면 동기화가 실패, 콜백으로 가야함 
} 

function DynamicLoad(source) { 
    var script = document.createElement('script'); 
    script.src = source; 
    script.onload = function() { 
     //do stuff with the script 
    }; 
    document.head.appendChild(script); 
} 

function DynamicLoadScriptForEdit(source, callback) { 
    DynamicLoad(source); 
    OnButton('ID_Button_Test'); 
} 

請幫幫我。謝謝。

+0

功能DynamicLoad(源){ \t變種腳本=使用document.createElement( '腳本'); \t script.src = source; \t script.onload = function(){ \t \t //用腳本做東西 \t}; \t document.head.appendChild(script); } 函數DynamicLoadScriptForEdit(來源,回調){ \t DynamicLoad(source); \t OnButton('ID_Button_Test'); } – Fortuneman

+0

@Tushar這是代碼。 – Fortuneman

回答

3

爲了達到這個目的,您可以在腳本的處理程序中調用它之前,將您提供給DynamicLoadScriptForEdit()的函數callback傳遞給較低級別​​的函數。嘗試:

window.onload = function() { 
    DynamicLoadScriptForEdit('/temps/F.js', function(err) { 
     ExecuteScriptForEdit(); 
    }); 
} 

function DynamicLoadScriptForEdit(source, callback) { 
    DynamicLoad(source, callback); // provide callback function 
    OnButton('ID_Button_Test'); 
} 

function DynamicLoad(source, callback) { // receive callback function here 
    var script = document.createElement('script'); 
    script.src = source; 
    script.onload = function() { 
     // do stuff with the script 

     callback && callback(); // call here 
    }; 
    document.head.appendChild(script); 
} 
+0

你救了我。對不起,我不擅長寫英文。謝謝!!我記得你。 – Fortuneman

相關問題