基于javascript原生判断DOM是否加载完毕


Posted in Javascript onOctober 14, 2020

readyState

document.readyState 返回当前文档的状态,属性如下:

  • uninitialized 还未开始加载
  • loading 加载中
  • interactive 已加载,文档与用户可以开始交互
  • complete 加载完成

DOMContentLoaded

当 DOMContentLoaded事件触发时,仅当DOM加载完成,不包括样式表,图片,flash

onload

当 onload 事件触发时,页面上所有的DOM,样式表,脚本,图片,flash都已经加载完成了

根据执行时DOM是否已经装载完毕来决定是对回调函数进行同步调用还是异步调用。具体代码如下:

function onReady(fn){
  var readyState = document.readyState;
  if(readyState === 'interactive' || readyState === 'complete') {
  fn()
 }else{
   window.addEventListener("DOMContentLoaded",fn);
  }

}

onReady(function(){
 console.log('DOM fully loaded and parsed ');
 })

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 隐藏/显示指定的区域附HTML元素【legend】用法
Mar 05 Javascript
JS基础之undefined与null的区别分析
Aug 08 Javascript
jquery分页插件AmSetPager(自写)
Apr 15 Javascript
解析js中获得父窗口链接getParent方法以及各种打开窗口的方法
Jun 19 Javascript
浅谈Javascript 执行顺序
Dec 18 Javascript
JavaScript基础知识学习笔记
Dec 02 Javascript
JavaScript使用delete删除数组元素用法示例【数组长度不变】
Jan 17 Javascript
JS基于正则表达式的替换操作(replace)用法示例
Apr 28 Javascript
简单谈谈JS中的正则表达式
Sep 11 Javascript
Angular5给组件本身的标签添加样式class的方法
Apr 07 Javascript
vue 组件的封装之基于axios的ajax请求方法
Aug 11 Javascript
JS实现音乐导航特效
Jan 06 Javascript
JavaScript常用进制转换及位运算实例解析
Oct 14 #Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
Oct 14 #Javascript
JavaScript本地储存:localStorage、sessionStorage、cookie的使用
Oct 13 #Javascript
原生JS实现相邻月份日历
Oct 13 #Javascript
jquery简易手风琴插件的封装
Oct 13 #jQuery
原生js实现照片墙效果
Oct 13 #Javascript
js轮播图之旋转木马效果
Oct 13 #Javascript
You might like
全国FM电台频率大全 - 30 宁夏回族自治区
2020/03/11 无线电
php环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
PHP基础之运算符的使用方法
2013/04/28 PHP
6个超实用的PHP代码片段
2015/08/10 PHP
jQuery实现单行文字间歇向上滚动源代码
2013/06/02 Javascript
javascript结合canvas实现图片旋转效果
2015/05/03 Javascript
基于jquery实现导航菜单高亮显示(两种方法)
2015/08/23 Javascript
JavaScript中实现Map的示例代码
2015/09/09 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
JavaScript手机振动API
2016/06/11 Javascript
浅谈JavaScript中变量和函数声明的提升
2016/08/09 Javascript
使用Vue自定义指令实现Select组件
2018/05/24 Javascript
nuxt.js 缓存实践
2018/06/25 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
vue实现的下拉框功能示例
2019/01/29 Javascript
全面分析JavaScript 继承
2019/05/30 Javascript
three.js 利用uv和ThreeBSP制作一个快递柜功能
2020/08/18 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
jQuery实现可以扩展的日历
2020/12/01 jQuery
[06:43]2018DOTA2国际邀请赛寻真——VGJ.Thunder
2018/08/11 DOTA
[01:20]DOTA2更新全新英雄 天涯墨客现已加入游戏
2018/08/25 DOTA
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
2019/08/26 Python
Python3批量创建Crowd用户并分配组
2020/05/20 Python
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
HTML5之SVG 2D入门5—颜色的表示及定义方式
2013/01/30 HTML / CSS
英国手工制作的现代与经典的沙发和床:Love Your Home
2020/09/26 全球购物
如何定义一个可复用的服务
2014/09/30 面试题
大学生蛋糕店创业计划书
2014/01/13 职场文书
对祖国的寄语大全
2014/04/11 职场文书
语文高效课堂实施方案
2014/05/03 职场文书
2014年信息技术工作总结
2014/12/16 职场文书
先进人物事迹材料
2014/12/29 职场文书
防震减灾主题班会
2015/08/14 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书
Python爬虫 简单介绍一下Xpath及使用
2022/04/26 Python
Mysql中@和@@符号的详细使用指南
2022/06/05 MySQL