为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查页面重新加载是否完成

如何检查页面重新加载是否完成

神不在的星期二 2023-09-25 17:21:19
我有一个用户单击的按钮,它会提交表单并在提交时重新加载页面。我想检查页面的重新加载是否完成。我尝试使用下面的方法,但它会在提交表单后甚至在加载完成之前立即发出警报。if(window.performance.navigation.type == 0){     alert('loaded'); }如何检查加载是否完成。提前致谢!
查看完整描述

3 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

DOMContentLoaded 和 Load对于此目的很有用

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属性可用于检查文档是否准备就绪来自 MDN:

值 文档的readyState可以是以下之一:

正在加载 – 文档仍在加载。交互式 – 文档已完成加载并且文档已被解析,但图像、样式表和框架等子资源仍在加载。完成 – 文档和所有子资源已完成加载。该状态表明加载事件即将触发。

您可以使用下面的代码。

  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!

    });

 }


查看完整回答
反对 回复 2023-09-25
?
狐的传说

TA贡献1804条经验 获得超3个赞

您可以利用onreadystatechange事件并检查document readyState. 如果readyState有值complete则显示警报。


当文档的 ReadyState 属性发生更改时,会触发 ReadyStateChange 事件


或者只是在正文末尾加载 javascript 代码。


例子:


document.onreadystatechange = () => {

  if (document.readyState === 'complete') {

     alert('loaded');

  }

};


查看完整回答
反对 回复 2023-09-25
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

您可以使用 window.onload:


window.onload = function() {

  alert("loaded");

};

<button onclick="location.reload()">Reload</button>

https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event


查看完整回答
反对 回复 2023-09-25
  • 3 回答
  • 0 关注
  • 132 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信