加载外部异步脚本后是否可以运行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)。