创建一个 ready();功能

为 DOMContentLoaded 事件创建一个就绪函数可能是个好主意,我们可以使用包含事件触发时要执行的代码的回调函数调用该函数,以下是如何完成的示例:

function ready(callback) {
  if (typeof callback !== 'function') {
    throw new Error('The callback parameter must be a function!'); 
  }
   window.addEventListener('DOMContentLoaded', callback);
}

为了使用此函数,我们可以将其与匿名箭头函数一起使用:

let message = 'The DOM is fully loaded.';
ready(() => {
  console.log(message);
});

或者使用传统的 function 关键字:

ready(function() {
  console.log(message);
});
JavaScript 中的 DOMContentLoaded 事件

DOMContentLoaded 事件仅在 DOM 完全加载后触发,无需等待图像、样式表和子frame;如果我们还需要完成加载资产,则应考虑使用 load 事件。

我们可以在 Window 界面上侦听此事件。

我们可以设置一个等待此事件的事件侦听器,以确保加载脚本依赖项并避免未定义的错误。
当我们设置事件侦听器时,我们将需要使用在事件触发后执行的回调函数:

window.addEventListener('DOMContentLoaded', function() {
    document.getElementById("id_of_element").innerHTML = '<p>DOM fully loaded.</p>';
});

如果我们只想更新元素的文本,则可以使用innerText 而不是innerHTML。

如果需要捕获事件,请将其作为函数参数传递:

window.addEventListener('DOMContentLoaded', function(event) {
  console.log(event);
});

如果我们在依赖项上遇到未定义的错误,例如 jQuery 或者 $,那么在我们尝试使用此类库之前设置事件侦听器以确保 DOM 已加载有时可能会有所帮助。

日期:2020-06-02 22:16:04 来源:oir作者:oir