listen
Adds an event listener that is removed when the element is removed.
listen(type: string, handler: (event: Event) => unknown, target?: EventTarget): voidlisten("keydown", onKey);
listen("resize", layout, window);
listen("visibilitychange", pause, document);Parameters
| Parameter | Type | Default | Meaning |
|---|---|---|---|
type |
string |
required | Event name |
handler |
(event) => unknown |
required | Listener |
target |
EventTarget |
host |
Where to listen |
Same as target.addEventListener(type, handler, { signal }) with the element's signal. The return value of handler is ignored (use event.preventDefault() to cancel).
Example
Last key pressed anywhere:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>listen demo</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@realmorg/realm@alpha/dist/realm.css">
<script type="module" src="https://cdn.jsdelivr.net/npm/@realmorg/realm@alpha/dist/realm.js"></script>
</head>
<body>
<import-element from="./key-display.html"></import-element>
<key-display></key-display>
</body>
</html><custom-element name="key-display">
<script>
const keys = useState({ last: "" });
listen("keydown", (event) => {
keys.last = event.key;
}, window);
</script>
<p>Last key pressed anywhere: <kbd><slot name="#keys.last">none</slot></kbd></p>
</custom-element>