如何在元素onload完全完成时调用函数?

时间:2017-08-13 08:21:42

标签: javascript

我有一个JS问题,这个问题既棘手又愚蠢,不确定。

所以,让我们说当页面上的外部JS脚本完全加载时我需要执行一个函数,因为否则我会收到错误。

案例1:

var s = document.createElement('script');
s.src = "http://somedomain/somescript.js"

function foo() {
doSomething;
}

s.onload = foo;

在这种情况下,函数本身分配给onload,并且应该在脚本完成加载时运行。

案例2:

s.onload = foo();

在这种情况下,根据What is the different between window.onload = init(); and window.onload = init;,函数的返回结果在加载完成时分配,因此,函数可以在加载开始时开始执行,而不是在元素完成加载时开始执行,取决于浏览器。

案例3:

s.onload = function() {
doSomething;
}

这是棘手的部分。我认为这种语法应该像情况2那样执行,但我无法证实这一点。我只是定义了函数,还是同时定义和执行它?

2 个答案:

答案 0 :(得分:-1)

使用它:

window.onload = function(){

    //running your function

}

答案 1 :(得分:-2)

尝试使用addEventListener:

s.addEventListener("load", foo());

有关更多信息,请参阅w3schools:addEventListener