加载并执行外部脚本后运行JavaScript代码

时间:2014-04-13 21:41:39

标签: javascript jquery browser webpage

我想动态加载并执行第三方JavaScript文件(来自不同的域),然后在完成后执行我自己的一些代码。我可以使用jQuery的$.getScript

$.getScript('https://login.persona.org/include.js', function () {
    // my code
});

但是,根据jQuery文档,无法保证在调用回调时脚本已执行。

我有什么选择?我需要一次性使用最基本的解决方案。

2 个答案:

答案 0 :(得分:0)

更新

尝试



console.log("navigatorId:", navigator.id);

$(window).queue("login", Array(
    function(next) {
      return $.getScript("https://login.persona.org/include.js").then(next)
    }
  , function() {
       console.log("navigatorId:", navigator.id)  
    }
)).dequeue("login");

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
&#13;
&#13;
&#13;

请参阅.queue()

答案 1 :(得分:-1)

您可以尝试向回调添加一个小超时,以确保脚本文件已执行。例如

$.getScript('https://login.persona.org/include.js', function () {
    setTimeout(function(){
        // my code
    }, 25);
});