gpt4 book ai didi

JavaScript window.onload 与 body.onload

转载 作者:搜寻专家 更新时间:2023-10-31 08:52:48 26 4
gpt4 key购买 nike

我的问题与此处提出的问题类似,但又略有不同,window.onload vs <body onload=""/>

那道题是用 window.onload 和内联 js 的对比。

我的问题是下面的区别。假设正文标签的 ID 为“bodyTag”。

document.getElementById("bodyTag").onload = function () {
alert("hi");
}

对比

window.onload = function () {
alert("hi");
}

确切地说,这两者之间有什么区别,我什么时候应该使用一个而不是另一个?这仅适用于纯 JavaScript。我是否正确地假设不同之处在于 window.onload 在加载整个网页、加载所有样式以及加载所有 Javascript 代码之后才会启动?虽然第一个版本 (document.getElementById("bodyTag").onload=),它等待整个网页加载(如果它被声明为头部的外部 CSS 文件,则等待 CSS 样式),但不是所有的 Javascript加载?有区别吗?

最佳答案

窗口(对象)有时被称为全局空间容器,它包含所有其他对象(默认和您的自定义对象),它包含所有内容,例如 indexedDB、 session 存储、cookie、您的变量、您的函数以及浏览器页面中的所有内容.基本上,正如我在上面写的那样,窗口是一个对象,它将所有内容存储为方法或属性。让我解释一下什么是属性,什么是方法,

(function my_obj(){
this.firstName="john";
var middleName = "XYZ"
this.lastName="doe";
this.fullName = function(){
return this.firstName+" "+this.middleName+" "+this.lastName
}
document.write(this.fullName())
})();

在这个例子中,我使用构造函数创建了对象,在这个例子中是firstName , middleNamelastName被称为属性(property),fullName()被称为方法,(你可以说方法是对象内函数的另一个名称)。所以考虑这样的窗口

window{
preset_obj:{};
indexedDB:{......};
.
.
.
.
.
.
.
.
.
.
.
//your code loads in the end
var my_var= "JS rocks!"
var anti_me= "Are You out of your Mind?? JS??Huh!"
var dont_care= "I Love COBOL"

}

但是 body 我的 friend 是不同的情况,(更不用说 document 和 body 是两个不同的对象)。如果你给 body 一个 ID 并使用 document.getElementByID('ID') .它将返回包含页面中显示的所有可见元素的对象。但它不会包含所有其他窗口内容,如 cookie、 session 存储。文件的情况也是如此。文档选择您编写的整个 HTML 代码,不多不少。换句话说,它是包含 <html></html> 中包含的所有内容的对象标签。希望这消除了困惑

--------------------更新-------------------- ----------------------------好的,抱歉没有正确阅读您的帖子。 window.onload将在整个页面与标题一起完成处理时加载(不要与 head 标签或 HTML5 header 标签混淆)。 document.onload将在前端工作时加载(HTML、CSS 和 JS 将完成加载)时间差异不大,除非您在标题中发送 100KB+ 代码,我会说坚持使用 window.onload 除非您的标题很大或者您想这样做特定于页面显示的时间

关于JavaScript window.onload 与 body.onload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36701008/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com