Skip to content

Latest commit

 

History

History
30 lines (24 loc) · 967 Bytes

ready.md

File metadata and controls

30 lines (24 loc) · 967 Bytes
标题 标签
ready(加载完毕后再执行回调) browser,regexp,callback(浏览器,正则表达式,回调函数)

模拟实现加载完毕后执行回调函数。

  • 构建加载完毕的正则表达式。
  • 判断 document.readyState 的值和正则表达式是否匹配,并且要存在 document.body 元素,然后执行回调。
  • 否则监听 DOMContentLoaded 事件然后执行回调函数。
const ready = callback => {
  const readyRE = /complete|loaded|interactive/;
  if (readyRE.test(document.readyState) && document.body) {
    callback();
  } else {
    document.addEventListener('DOMContentLoaded', () => callback(), false);
  }
};

调用方式:

ready(function () {
  alert('加载完毕!');
}); // 页面加载完即弹出弹出框

应用场景