DOMContentLoaded 和 Load 可用于此目的 (link)
DOMContentLoaded – 浏览器完全加载 HTML,DOM 树是
已构建,但图片和样式表等外部资源可能
尚未加载。
load – 不仅加载了 HTML,还加载了所有
外部资源:图片、样式等
Load 应该只用于检测完全加载的页面。在更适合 DOMContentLoaded 的地方使用 load 是一个常见的错误。
window.addEventListener('DOMContentLoaded', (event) => {
console.log('DOM fully loaded and parsed');
});
//===================
window.onload = function() {
// same as window.addEventListener('load', (event) => {
alert('Page loaded');
// image is loaded at this time
alert(`Image size: ${img.offsetWidth}x${img.offsetHeight}`);
};
根据您的问题,您希望在提交表单后进行检查。因此,当表单提交时,窗口会重新加载,整个文档也会重新加载。
您也可以使用 document.readyState 来检查文档是否已完全加载。
document.readyState property 可以用来检查文件是否
准备好了。来自 MDN:
值 文档的 readyState 可以是以下之一:
loading – 文档仍在加载中。交互式 - 文档
已完成加载并且文档已被解析但
图像、样式表和框架等子资源仍然存在
加载。完成 - 文档和所有子资源已完成
加载。该状态表示加载事件即将触发。
你可以使用下面的代码。
if(document.readyState === "complete") {
// Fully loaded!
}
else if(document.readyState === "interactive") {
// DOM ready! Images, frames, and other subresources are still
downloading.
}
else {
// Loading still in progress.
// To wait for it to complete, add "DOMContentLoaded" or "load"
listeners.
window.addEventListener("DOMContentLoaded", () => {
// DOM ready! Images, frames, and other subresources are still
downloading.
});
window.addEventListener("load", () => {
// Fully loaded!
});
}