--- title: 'HTMLMediaElement: progress event' slug: Web/API/HTMLMediaElement/progress_event tags: - API - Event - HTMLMediaElement - Reference - Web - progress translation_of: Web/API/HTMLMediaElement/progress_event --- {{APIRef}} **`progress`** 事件在浏览器加载一个资源的时候周期性触发。
Bubbles No
Cancelable No
Interface {{domxref("Event")}}
Event handler property onprogress
## 示例 ### 在线示例 #### HTML ```html
``` ```css hidden .event-log-contents { width: 18rem; height: 5rem; border: 1px solid black; margin: .2rem; padding: .2rem; } .example { display: grid; grid-template-areas: "button log" "video log"; } button { grid-area: button; width: 10rem; margin: .5rem 0; } video { grid-area: video; } .event-log { grid-area: log; } .event-log>label { display: block; } ``` #### JavaScript ```js const loadVideo = document.querySelector('button'); const video = document.querySelector('video'); const eventLog = document.querySelector('.event-log-contents'); let source = null; function handleEvent(event) { eventLog.textContent = eventLog.textContent + `${event.type}\n`; } video.addEventListener('loadstart', handleEvent); video.addEventListener('progress', handleEvent); video.addEventListener('canplay', handleEvent); video.addEventListener('canplaythrough', handleEvent); loadVideo.addEventListener('click', () => { if (source) { document.location.reload(); } else { loadVideo.textContent = "Reset example"; source = document.createElement('source'); source.setAttribute('src', 'https://mdn.github.io/learning-area/html/multimedia-and-embedding/video-and-audio-content/rabbit320.mp4'); source.setAttribute('type', 'video/mp4'); video.appendChild(source); } }); ``` #### 结果 {{ EmbedLiveSample('Live_example', '100%', '250px') }} ## 规范 {{Specifications}} ## 浏览器兼容性 {{Compat}} ## 参见 - {{domxref("HTMLAudioElement")}} - {{domxref("HTMLVideoElement")}} - {{HTMLElement("audio")}} - {{HTMLElement("video")}}