MaddEventListener
Bun

method

WebView.addEventListener

addEventListener<T = unknown>(
type: `${string}.${string}`,
listener: (event: new (type: string, eventInitDict?: MessageEventInit<T>) => MessageEvent<T>) => void,
options?: boolean | AddEventListenerOptions
): void;

Subscribe to CDP events. Chrome backend only.

Event types are CDP method names directly — "Network.responseReceived", "Page.frameStartedLoading", "DOM.documentUpdated", etc. The listener receives a MessageEvent with the CDP params as event.data.

Enable the domain first with cdp("Domain.enable"), or Chrome won't send those events. Events without a registered listener are dropped before JSON parsing (no overhead for domains you enabled but don't fully listen to).

await view.navigate("about:blank");
await view.cdp("Network.enable");
view.addEventListener("Network.responseReceived", e => {
  console.log(e.data.response.status, e.data.response.url);
});
await view.navigate("https://example.com");
type: string,
options?: boolean | AddEventListenerOptions
): void;

Adds a new handler for the type event. Any given listener is added only once per type and per capture option value.

If the once option is true, the listener is removed after the next time a type event is dispatched.

The capture option is not used by Node.js in any functional way other than tracking registered event listeners per the EventTarget specification. Specifically, the capture option is used as part of the key when registering a listener. Any individual listener may be added once with capture = false, and once with capture = true.

Referenced types

interface AddEventListenerOptions

  • capture?: boolean
  • once?: boolean

    When true, the listener is automatically removed when it is first invoked. Default: false.

  • passive?: boolean

    When true, serves as a hint that the listener will not call the Event object's preventDefault() method. Default: false.