加载完成包含两种含义:

  1. DOM构建完成,不包含图片、样式和其它框架,也就是我们常说的DOMContentLoaded事件。
  2. 页面依赖的所有资源记载完成,也就是我们常说的window.onload事件。

判断ready的方法:

  1. 监听documentonreadystatechange,判断readyState
 document.onreadystatechange = function () {if(document.readyState === 'complete'){console.log("On document.onreadystatechange");}};

或者

 document.addEventListener('readystatechange' , function () {if(document.readyState === 'complete'){console.log("On document.onreadystatechange");}
});

ps: on开头的事件既可以通过domObj.onEventName的形式也可以通过domObj.addEventListener(‘eventName' ,function(){})的形式监听。两者的区别是:onEventName重复添加同一事件,只会触发最后添加的事件。addEventListener添加的事件都会出发,先添加的先触发。

  1. 监听documentready事件
 document.ready = function(){console.log('document.ready');
};
  1. 监听documentDOMContentLoaded事件
document.addEventListener('DOMContentLoaded', function () {console.log("On DOMContentLoaded -2-");
});

ps:jquery的$(function(){})$(document).ready(function(){})底层都是使用的DOMContentLoaded事件。

执行顺序为:Jquery ready >(早于) document.ready > DOMContentLoaded > readystatechange

判断onload的方法:

  1. 监听windowonload事件
window.onload = function () {console.log("On window.onload");
};
  1. 监听document.bodyonload事件
document.body.onload = function () {console.log("On document.body.onload");
};

请注意:onload 方式添加会产生覆盖效果(你可以把这两个事件认为是同一个事件),后添加的覆盖先添加的事件。addEventListener方式不会产生覆盖。

下面是完整测试代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>判断页面加载完成</title><script type="text/javascript" src="http://code.jquery.com/jquery-1.9.0.js"></script>
</head>
<body><div><button id="testButton">点我呀</button>
</div>
<script>readyEvent();onLoadEvent();/*** 测试事件覆盖*/function initButtonClick() {document.getElementById('testButton').onclick = function () {console.log('Trigger by onclick -1-');};document.getElementById('testButton').onclick = function () {console.log('Trigger by onclick -2-');};document.getElementById('testButton').addEventListener('click', function () {console.log('Trigger by addEventListener -1-');});document.getElementById('testButton').addEventListener('click', function () {console.log('Trigger by addEventListener -2-');});}/*** 判断ready*/function readyEvent() {document.onreadystatechange = function () {if (document.readyState === 'complete') {console.log("On document.onreadystatechange -1-");}};document.onreadystatechange = function () {if (document.readyState === 'complete') {console.log("On document.onreadystatechange -2-");}};document.ready = function(){console.log('document.ready');};document.addEventListener('DOMContentLoaded', function () {console.log("On DOMContentLoaded -1-");});document.addEventListener('DOMContentLoaded', function () {console.log("On DOMContentLoaded -2-");initButtonClick();});$(function () {console.log('On Jquery Ready -1-');});$(function () {console.log('On Jquery Ready -2-');});}/*** 判断loaded*/function onLoadEvent() {document.body.onload = function () {console.log("On document.body.onload -1-");};document.body.onload = function () {console.log("On document.body.onload -2-");};window.onload = function () {console.log("On window.onload -1-");};window.onload = function () {console.log("On window.onload -2-");};window.addEventListener('load', function () {console.log("On window.addEventListener load -1-");});window.addEventListener('load', function () {console.log("On window.addEventListener load -2-");});}
</script>
</body>
</html>

如何判断HTML页面加载完成相关推荐

  1. 如何在页面加载完成后再去做某事?什么方法可以判断当前页面加载已完成?...

    javascript提供了document.readyState=="complete"方法来解决当前页面加载判断的问题.<script type="text/ja ...

  2. Hello Playwright:(8)等待页面加载

    在我们前面的文章中,我们始终使用await page.GotoAsync(url);加载页面,我们的目的是等待足够长的时间让页面上的元素出现.但是,我们更希望永远不要因为等待浪费任何时间. WaitU ...

  3. JS判断页面加载完毕

    //JS判断页面加载完毕,再隐藏加载效果层,一个简单的JS加载效果.document.onreadystatechange = function () {if (document.readyState ...

  4. 页面状态javascript 判断 iframe是否加载成功

    这段时间一直在学习页面状态之类的问题,现在正好有机会和大家分享一下. 最近在做产品的维护,修改一些老的bug.有个bug是jsp页面在加载的时候请求一个iframe.在页面显示的过程当中,窗口会长久的 ...

  5. vue 判断页面加载完成_vue项目搭建及总结

    一.vue的两种安装方式 (1)直接在html中引入vue.js (2)通过vue+nodeJS搭建 我们采用的是第二种方式 二.vue和nodeJS的关系 (1)nodeJS不是一个js框架,是一个 ...

  6. vue 判断页面加载完成_Vue实战040:nprogress页面加载进度条

    前言 很多时候在访问网页的时候我们总是看到页面在加载中,可以却不知道要加载多久,无期限的等待总是让人烦躁不安,所以我们希望能知道网页加载的进度,这样我们就能做到心中有数是否继续等待页面加载.这个功能我 ...

  7. html 判断页面加载完成,Javascript判断页面是否加载完成

    很多时候我们在使用document.getElementById的时候直接在script标签中获取对象,然后使用,此时程序会出现该对象为undefined. var dom=document.getE ...

  8. html页面判断其他div为空,将外部html加载到div中 - 页面加载然后变为空白

    我确信这将会变成一件愚蠢的事情,但是自从我成为JavaScript noob以来,这里就变成了一件愚蠢的事情.将外部html加载到div中 - 页面加载然后变为空白 我想外部HTML内容加载到我的索引 ...

  9. vue 判断页面加载完成_vue之骨架屏踩坑之路

    vue的首屏优化方式有很多种 骨架屏就是其中之一 作为一个前端开发 用户体验感是很重要的 关于页面的loading状态的展示,目前主流的主要有loading图和进度条两种 现今使用骨架屏的也越来越多 ...

最新文章

  1. antd 文本域超长问题_「自然语言处理(NLP)」阿里团队--文本匹配模型(含源码)...
  2. 【机器视觉】 ifelse算子(已废弃)
  3. 区分Activity的四种加载模式
  4. 【原创】2009个性签名和流行语搜集
  5. OpenCV:No value has been specified for property 'manifestOutputDirectory'
  6. 上传文件的input问题以及FormData特性
  7. ResNet论文笔记
  8. python求列表的平均值的用法_python如何求列表平均值?_后端开发
  9. Unity shader实现水效果(折射,反射,波浪,1.菲尼尔,深度颜色)
  10. HYSBZ/BZOJ 1007 [HNOI2008] 水平可见直线 - 计算几何
  11. 分布式监控系统开发【day38】:报警阈值程序逻辑解析(三)
  12. 【专栏必读】软件工程导论第六版(张海藩)专栏学习笔记目录导航
  13. 事记:关于远控软件导致win10屏幕亮度无法调节的解决方案
  14. Java VM Options
  15. 基于RSelenium爬取中国裁判文书网文书数据
  16. 解决pychram:卡在Updating Python Interpreter
  17. oracle append parallel,oracle 优化之parallel和append
  18. Modern CMake 简介
  19. dex文件格式------map_list解析
  20. recycler 刷新图片闪烁_android 解决RecyclerView notifyDataSetChanged刷新闪屏问题(图片刷新)...

热门文章

  1. 富士康服务器linux运维,【2019IT运维十大样板工程】富士康云桌面及智能运维项目...
  2. 30张地图看懂世界格局,用大数据说话
  3. Symantec赛门铁克支持型SSL服务器证书_网站安全SSL数字证书认证
  4. SSL/TLS高强度加密
  5. 收集的一些计算机硬件知识
  6. Write Like You Talk
  7. 【苹果推送】imessage软件安装iPhoneDeveloper家庭组建
  8. 造轮子实现RPC框架_01_MyRPCFramework简介
  9. linux 查看当前用户和组的信息,Linux查看所有用户和组信息
  10. 防电脑辐射的方法,电脑防辐射技巧