HTMLMediaElement: progress event

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨July 2015⁩.

The progress event is fired periodically as the browser loads a resource.

This event is not cancelable and does not bubble.

Syntax

Use the event name in methods like addEventListener(), or set an event handler property.

js
addEventListener("progress", (event) => { })  onprogress = (event) => { } 

Event type

A generic Event.

Examples

>

Live example

HTML

html
<div class="example">   <button type="button">Load video</button>   <video controls width="250"></video>    <div class="event-log">     <label for="eventLog">Event log:</label>     <textarea readonly class="event-log-contents" id="eventLog"></textarea>   </div> </div> 

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 += `${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);   } }); 

Result

Specifications

Specification
HTML>
# event-media-progress>
HTML>
# handler-onprogress>

Browser compatibility

See also