--- title: load slug: Web/API/Window/load_event tags: - load translation_of: Web/API/Window/load_event original_slug: Web/Events/load ---

{{APIRef}}

当整个页面及所有依赖资源如样式表和图片都已完成加载时,将触发load事件。

它与{{domxref("Document/DOMContentLoaded_event", "DOMContentLoaded")}}不同,后者只要页面DOM加载完成就触发,无需等待依赖资源的加载。

是否冒泡
能否取消
接口 {{domxref("Event")}}
Event handler property {{domxref("GlobalEventHandlers/onload", "onload")}}

用法

当页面及资源完全加载后在控制台打印一段信息:

window.addEventListener('load', (event) => {
  console.log('page is fully loaded');
});

也可以使用onload实现:

window.onload = (event) => {
  console.log('page is fully loaded');
};

示例

HTML

<div class="controls">
  <button id="reload" type="button">Reload</button>
</div>

<div class="event-log">
  <label>Event log:</label>
  <textarea readonly class="event-log-contents" rows="8" cols="30"></textarea>
</div>

JS

const log = document.querySelector('.event-log-contents');
const reload = document.querySelector('#reload');

reload.addEventListener('click', () => {
  log.textContent ='';
  window.setTimeout(() => {
      window.location.reload(true);
  }, 200);
});

window.addEventListener('load', (event) => {
    log.textContent = log.textContent + 'load\n';
});

document.addEventListener('readystatechange', (event) => {
    log.textContent = log.textContent + `readystate: ${document.readyState}\n`;
});

document.addEventListener('DOMContentLoaded', (event) => {
    log.textContent = log.textContent + `DOMContentLoaded\n`;
});

结果

{{ EmbedLiveSample('Live_example', '100%', '160px') }}

规范

Specification Status Comment
{{SpecName('UI Events', '#event-type-load', 'load')}} {{Spec2('UI Events')}}
{{SpecName('HTML WHATWG', '#delay-the-load-event', 'load event')}} {{Spec2('HTML WHATWG')}} 此链接指向加载文档结束时执行步骤中的部分。“load”事件也会在许多元素上触发。 请注意,规范中有很多地方涉及到可以"延迟加载事件"的内容。

浏览器兼容性

{{Compat("api.Window.load_event")}}

参阅