外部脚本中的异步任务完成后执行回调?

时间:2015-09-22 12:45:13

标签: javascript jquery

加载外部异步脚本后是否可以运行javascript函数?

在example.js运行后(异步。似乎),这就是结果:

<div class="keepthisdiv">Keep this text</div>
<div class="removethisdiv">Remove this text</div>
<div class="keepthisdiv">Keep this text</div>

必须在body标签之间运行Example.js,如果它在头部,则没有输出。

这是我的div容器和js代码(credits):

<div id="jscontainer"></div>

<script>

function loadBackupScript(callback){
    if (typeof callback !== 'function') {
       throw 'Not a valid callback';  
    }
    var script = document.createElement('script');
    script.onload = callback;  
    script.src = 'http://www.example.com/example.js';
    script.type = 'text/javascript';
    var container = document.getElementById("jscontainer");
    container.appendChild(script);
}

loadBackupScript(function() {

$( ".removethisdiv" ).remove();

});

</script>

但是,它不会删除removethisdiv类的div。 loadBackupScript显然在完全解析example.js之前运行。

如何在loadBackupScript类插入DOM后立即运行removethisdiv函数?我知道可以使用计时器,然后在几秒钟后将其删除,但这是不可靠的,因为外部脚本的解析时间会有所不同。此外,同一页面上有许多不同的脚本,因此我希望避免等待页面完全加载,我需要专门针对此脚本(example.js)。

0 个答案:

没有答案