我想动态加载并执行第三方JavaScript文件(来自不同的域),然后在完成后执行我自己的一些代码。我可以使用jQuery的$.getScript
:
$.getScript('https://login.persona.org/include.js', function () {
// my code
});
但是,根据jQuery文档,无法保证在调用回调时脚本已执行。
我有什么选择?我需要一次性使用最基本的解决方案。
答案 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;
请参阅.queue()
答案 1 :(得分:-1)
您可以尝试向回调添加一个小超时,以确保脚本文件已执行。例如
$.getScript('https://login.persona.org/include.js', function () {
setTimeout(function(){
// my code
}, 25);
});