基于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 相关文章推荐
Code: write(s,d) 输出连续字符串
Aug 19 Javascript
表单元素事件 (Form Element Events)
Jul 17 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件
Dec 21 Javascript
javascript如何使用bind指定接收者
May 04 Javascript
Js和JQuery获取鼠标指针坐标的实现代码分享
May 25 Javascript
浅谈react.js中实现tab吸顶效果的问题
Sep 06 Javascript
基于vue实现分页效果
Nov 06 Javascript
windows下更新npm和node的方法
Nov 30 Javascript
json数据传到前台并解析展示成列表的方法
Aug 06 Javascript
js中的数组对象排序分析
Dec 11 Javascript
Vue项目实现简单的权限控制管理功能
Jul 17 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
Dec 02 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
深思 PHP 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
php压缩多个CSS为一个css的代码并缓存
2011/04/21 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
2015/10/21 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
javascript 字符串连接的性能问题(多浏览器)
2008/11/18 Javascript
JavaScript中的prototype使用说明
2010/04/13 Javascript
js操作select控件的几种方法
2010/06/02 Javascript
jQuery 选择器项目实例分析及实现代码
2012/12/28 Javascript
用js的document.write输出的广告无阻塞加载的方法
2014/06/05 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层
2016/01/18 Javascript
原生js实现弹出层登录拖拽功能
2016/12/05 Javascript
Bootstrap标签页(Tab)插件使用方法
2017/03/21 Javascript
详解Vue.js搭建路由报错 router.map is not a function
2017/06/27 Javascript
利用jQuery+localStorage实现一个简易的计时器示例代码
2017/12/25 jQuery
vue 本地环境跨域请求proxyTable的方法
2018/09/19 Javascript
浅谈关于iview表单验证的问题
2018/09/29 Javascript
js中this的指向问题归纳总结
2018/11/28 Javascript
微信域名检测接口调用演示步骤(含PHP、Python)
2019/12/08 Javascript
django传值给模板, 再用JS接收并进行操作的实例
2018/05/28 Python
Python 获取div标签中的文字实例
2018/12/20 Python
对python读取zip压缩文件里面的csv数据实例详解
2019/02/08 Python
python根据txt文本批量创建文件夹
2020/12/08 Python
python3下pygame如何实现显示中文
2020/01/11 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
详解HTML5通讯录获取指定多个人的信息
2016/12/20 HTML / CSS
美国二手复古奢侈品包包购物网站:LXRandCo
2019/06/18 全球购物
网络、C以及其他硬件方面的面试题
2016/08/23 面试题
UNIX特点都有哪些
2016/04/05 面试题
招商专员岗位职责
2014/02/08 职场文书
党课培训心得体会
2014/09/02 职场文书
汽车转让协议书
2015/01/29 职场文书
清明扫墓感想
2015/08/11 职场文书
商业计划书范文
2019/04/24 职场文书
python实现的人脸识别打卡系统
2021/05/08 Python
mysql配置SSL证书登录的实现
2021/09/04 MySQL