> ## Documentation Index
> Fetch the complete documentation index at: https://docs.littledemo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Player events

Control the embed player from a parent page.

The iframe player can receive playback commands through `postMessage`.

## Send commands

```javascript
const iframe = document.querySelector("iframe[data-demo-player]");

iframe.contentWindow.postMessage(
  { type: "littledemo:play" },
  "https://littledemo.com"
);

iframe.contentWindow.postMessage(
  { type: "littledemo:seek", payload: { time: 3.5 } },
  "https://littledemo.com"
);
```

## Listen for events

```javascript
window.addEventListener("message", (event) => {
  if (event.origin !== "https://littledemo.com") return;

  if (event.data?.type === "littledemo:ended") {
    console.log("Demo finished");
  }
});
```

## Use explicit origins

Avoid `*` as the target origin in production. It is fine for quick local tests, but explicit origins are better for real pages.