JavaScript window.onload versus body.onload

JavaScript window.onload versus body.onload

本文关键字:onload body versus JavaScript window      更新时间:2023-09-26

我的问题与这里的问题相似,但有点不同,window.onload vs<车身负载=">

在这个问题中,这是使用window.onload和内联js之间的比较。

我的问题是以下两者之间的区别。假设body标签的Id为"bodyTag"。

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

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

确切地说,这两者之间有什么区别?我什么时候应该使用其中一个与另一个?这仅适用于纯JavaScript。我假设的区别是window.onload直到整个网页加载完毕,所有样式都加载完毕,并且所有Javascript代码都加载完毕后才会启动,这是正确的吗?当使用第一个版本(document.getElementById("bodyTag").onload=)时,它等待整个网页加载(如果在head中声明为外部CSS文件,则等待CSS样式),但不等待所有Javascript加载?这就是区别吗?

Window(object)有时被重新定义为全局空间容器,它包含所有其他对象(默认对象和自定义对象),它包含indexedDB、会话存储、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())
})();

在这个例子中,我使用构造函数创建了Object,在这个例子里,firstNamemiddleNamelastName被引用为属性,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"
}

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

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

window onload将在加载网页的窗口时加载,其中as-body onload仅在加载网页正文时加载。

为了简单起见,第一个窗口将被加载,然后网页的主体将被加载。因此首先加载Window.load,然后加载body。