首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何仅在元素onload完全完成时调用函数?

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

Stack Overflow用户
提问于 2017-08-13 16:21:42
回答 2查看 52关注 0票数 0

我有一个JS问题,要么很棘手,要么很愚蠢,不确定。

因此,假设我需要在页面上的外部JS脚本完成加载时执行一个函数,否则我将得到一个错误。

案例1:

代码语言:javascript
运行
复制
var s = document.createElement('script');
s.src = "http://somedomain/somescript.js"

function foo() {
doSomething;
}

s.onload = foo;

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

案例2:

代码语言:javascript
运行
复制
s.onload = foo();

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

案例3:

代码语言:javascript
运行
复制
s.onload = function() {
doSomething;
}

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

EN

回答 2

Stack Overflow用户

发布于 2017-08-13 16:50:18

使用以下命令:

代码语言:javascript
运行
复制
window.onload = function(){

    //running your function

}
票数 -1
EN

Stack Overflow用户

发布于 2017-08-13 16:44:15

尝试使用addEventListener:

代码语言:javascript
运行
复制
s.addEventListener("load", foo());

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

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45658447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档