如何知道Javascript追加方法是否已完成脚本标记

时间:2015-11-10 02:32:24

标签: javascript jquery asynchronous browser callback

var js_1 = "<script type="text/javascript" src="https://xxxx.yyy.appl.js"> </script>" 

var js_2 = <script type="text/javascript">JUMBO.submission.onComplete(function(response) { alert('hello'); console.log(response); }); </script>

    $('.form-section').append(js_1);  ---> line 3 
    $('.form-section').append(js_2);  ---> line 4

在正常情况下JUMBO对象应该在appl.js启动后定义,但在我的方案中,我收到错误,指出JUMBO未定义。

我的发现:
如果它是常规append方法,因为它是同步调用,它不会成为问题但是js_1是异步调用,在此line 3执行之前,{ {1}}正在执行并收到错误。

我尝试过line 4方法来解决它,但没有运气。任何帮助都会得到回报。

注:

必须将

$.getScript, Deferred插入到DOM中,以便生成所需的html。

1 个答案:

答案 0 :(得分:0)

使用$.getScript

的回调参数
$.getScript("https://xxxx.yyy.appl.js", function() {
    JUMBO.submission.onComplete(function(response) { 
        alert('hello'); 
        console.log(response); 
    });
});

在加载脚本后将执行回调。