---
title: "WindowEventHandlers | JavaScript maps SDK"
description: "Documentation for MapTiler SDK"
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# Interface WindowEventHandlers

interface WindowEventHandlers {  
    [onafterprint](#onafterprint): ((this: WindowEventHandlers, ev: Event) \=> any) | null;  
    [onbeforeprint](#onbeforeprint): ((this: WindowEventHandlers, ev: Event) \=> any) | null;  
    [onbeforeunload](#onbeforeunload):  
        | ((this: WindowEventHandlers, ev: [BeforeUnloadEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.BeforeUnloadEvent/)) \=> any)  
        | null;  
    [ongamepadconnected](#ongamepadconnected):  
        | ((this: WindowEventHandlers, ev: [GamepadEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GamepadEvent/)) \=> any)  
        | null;  
    [ongamepaddisconnected](#ongamepaddisconnected):  
        | ((this: WindowEventHandlers, ev: [GamepadEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GamepadEvent/)) \=> any)  
        | null;  
    [onhashchange](#onhashchange):  
        | ((this: WindowEventHandlers, ev: [HashChangeEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.HashChangeEvent/)) \=> any)  
        | null;  
    [onlanguagechange](#onlanguagechange): ((this: WindowEventHandlers, ev: Event) \=> any) | null;  
    [onmessage](#onmessage): ((this: WindowEventHandlers, ev: MessageEvent) \=> any) | null;  
    [onmessageerror](#onmessageerror):  
        | ((this: WindowEventHandlers, ev: MessageEvent) \=> any)  
        | null;  
    [onoffline](#onoffline): ((this: WindowEventHandlers, ev: Event) \=> any) | null;  
    [ononline](#ononline): ((this: WindowEventHandlers, ev: Event) \=> any) | null;  
    [onpagehide](#onpagehide):  
        | ((this: WindowEventHandlers, ev: [PageTransitionEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PageTransitionEvent/)) \=> any)  
        | null;  
    [onpagereveal](#onpagereveal):  
        | ((this: WindowEventHandlers, ev: [PageRevealEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PageRevealEvent/)) \=> any)  
        | null;  
    [onpageshow](#onpageshow):  
        | ((this: WindowEventHandlers, ev: [PageTransitionEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PageTransitionEvent/)) \=> any)  
        | null;  
    [onpageswap](#onpageswap): ((this: WindowEventHandlers, ev: [PageSwapEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PageSwapEvent/)) \=> any) | null;  
    [onpopstate](#onpopstate): ((this: WindowEventHandlers, ev: [PopStateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PopStateEvent/)) \=> any) | null;  
    [onrejectionhandled](#onrejectionhandled):  
        | ((this: WindowEventHandlers, ev: [PromiseRejectionEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PromiseRejectionEvent/)) \=> any)  
        | null;  
    [onstorage](#onstorage): ((this: WindowEventHandlers, ev: [StorageEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.StorageEvent/)) \=> any) | null;  
    [onunhandledrejection](#onunhandledrejection):  
        | ((this: WindowEventHandlers, ev: [PromiseRejectionEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PromiseRejectionEvent/)) \=> any)  
        | null;  
    [onunload](#onunload): ((this: WindowEventHandlers, ev: Event) \=> any) | null;  
    [addEventListener](#addeventlistener-1)<[K](#addeventlistenerk) extends keyof [WindowEventHandlersEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WindowEventHandlersEventMap/)\>(  
        type: [K](#addeventlistenerk),  
        listener: (  
            this: WindowEventHandlers,  
            ev: [WindowEventHandlersEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WindowEventHandlersEventMap/)\[[K](#addeventlistenerk)\],  
        ) \=> any,  
        options?: boolean | AddEventListenerOptions,  
    ): void;  
    [addEventListener](#addeventlistener-2)(  
        type: string,  
        listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/),  
        options?: boolean | AddEventListenerOptions,  
    ): void;  
    [removeEventListener](#removeeventlistener-1)<[K](#removeeventlistenerk) extends keyof [WindowEventHandlersEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WindowEventHandlersEventMap/)\>(  
        type: [K](#removeeventlistenerk),  
        listener: (  
            this: WindowEventHandlers,  
            ev: [WindowEventHandlersEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WindowEventHandlersEventMap/)\[[K](#removeeventlistenerk)\],  
        ) \=> any,  
        options?: boolean | EventListenerOptions,  
    ): void;  
    [removeEventListener](#removeeventlistener-2)(  
        type: string,  
        listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/),  
        options?: boolean | EventListenerOptions,  
    ): void;  
}

#### Hierarchy ([View Summary](https://docs.maptiler.com/sdk-js/api-reference/hierarchy/#Externals.WindowEventHandlers))

-   WindowEventHandlers
    -   [Window](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Window/)
    -   [SVGSVGElement](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.SVGSVGElement/)
    -   [HTMLBodyElement](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.HTMLBodyElement/)
    -   [HTMLFrameSetElement](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.HTMLFrameSetElement/)

##### Index

### Properties[](#properties)

[onafterprint](#onafterprint) [onbeforeprint](#onbeforeprint) [onbeforeunload](#onbeforeunload) [ongamepadconnected](#ongamepadconnected) [ongamepaddisconnected](#ongamepaddisconnected) [onhashchange](#onhashchange) [onlanguagechange](#onlanguagechange) [onmessage](#onmessage) [onmessageerror](#onmessageerror) [onoffline](#onoffline) [ononline](#ononline) [onpagehide](#onpagehide) [onpagereveal](#onpagereveal) [onpageshow](#onpageshow) [onpageswap](#onpageswap) [onpopstate](#onpopstate) [onrejectionhandled](#onrejectionhandled) [onstorage](#onstorage) [onunhandledrejection](#onunhandledrejection) [onunload](#onunload)

### Methods[](#methods)

[addEventListener](#addeventlistener) [removeEventListener](#removeeventlistener)

## Properties[](#properties-1)

### onafterprint[](#onafterprint)

onafterprint: ((this: WindowEventHandlers, ev: Event) \=> any) | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/afterprint_event)

### onbeforeprint[](#onbeforeprint)

onbeforeprint: ((this: WindowEventHandlers, ev: Event) \=> any) | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/beforeprint_event)

### onbeforeunload[](#onbeforeunload)

onbeforeunload:  
    | ((this: WindowEventHandlers, ev: [BeforeUnloadEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.BeforeUnloadEvent/)) \=> any)  
    | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/beforeunload_event)

### ongamepadconnected[](#ongamepadconnected)

ongamepadconnected:  
    | ((this: WindowEventHandlers, ev: [GamepadEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GamepadEvent/)) \=> any)  
    | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/gamepadconnected_event)

### ongamepaddisconnected[](#ongamepaddisconnected)

ongamepaddisconnected:  
    | ((this: WindowEventHandlers, ev: [GamepadEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.GamepadEvent/)) \=> any)  
    | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/gamepaddisconnected_event)

### onhashchange[](#onhashchange)

onhashchange: ((this: WindowEventHandlers, ev: [HashChangeEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.HashChangeEvent/)) \=> any) | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/hashchange_event)

### onlanguagechange[](#onlanguagechange)

onlanguagechange: ((this: WindowEventHandlers, ev: Event) \=> any) | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/languagechange_event)

### onmessage[](#onmessage)

onmessage: ((this: WindowEventHandlers, ev: MessageEvent) \=> any) | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/message_event)

### onmessageerror[](#onmessageerror)

onmessageerror: ((this: WindowEventHandlers, ev: MessageEvent) \=> any) | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/messageerror_event)

### onoffline[](#onoffline)

onoffline: ((this: WindowEventHandlers, ev: Event) \=> any) | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/offline_event)

### ononline[](#ononline)

ononline: ((this: WindowEventHandlers, ev: Event) \=> any) | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/online_event)

### onpagehide[](#onpagehide)

onpagehide: ((this: WindowEventHandlers, ev: [PageTransitionEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PageTransitionEvent/)) \=> any) | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/pagehide_event)

### onpagereveal[](#onpagereveal)

onpagereveal: ((this: WindowEventHandlers, ev: [PageRevealEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PageRevealEvent/)) \=> any) | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/pagereveal_event)

### onpageshow[](#onpageshow)

onpageshow: ((this: WindowEventHandlers, ev: [PageTransitionEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PageTransitionEvent/)) \=> any) | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/pageshow_event)

### onpageswap[](#onpageswap)

onpageswap: ((this: WindowEventHandlers, ev: [PageSwapEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PageSwapEvent/)) \=> any) | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/pageswap_event)

### onpopstate[](#onpopstate)

onpopstate: ((this: WindowEventHandlers, ev: [PopStateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PopStateEvent/)) \=> any) | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/popstate_event)

### onrejectionhandled[](#onrejectionhandled)

onrejectionhandled:  
    | ((this: WindowEventHandlers, ev: [PromiseRejectionEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PromiseRejectionEvent/)) \=> any)  
    | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/rejectionhandled_event)

### onstorage[](#onstorage)

onstorage: ((this: WindowEventHandlers, ev: [StorageEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.StorageEvent/)) \=> any) | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/storage_event)

### onunhandledrejection[](#onunhandledrejection)

onunhandledrejection:  
    | ((this: WindowEventHandlers, ev: [PromiseRejectionEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PromiseRejectionEvent/)) \=> any)  
    | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unhandledrejection_event)

### onunload[](#onunload)

onunload: ((this: WindowEventHandlers, ev: Event) \=> any) | null

#### Deprecated[](#deprecated)

The unload event is not reliable, consider visibilitychange or pagehide events.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unload_event)

## Methods[](#methods-1)

### addEventListener[](#addeventlistener)

-   addEventListener<[K](#addeventlistenerk) extends keyof [WindowEventHandlersEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WindowEventHandlersEventMap/)\>(  
        type: [K](#addeventlistenerk),  
        listener: (  
            this: WindowEventHandlers,  
            ev: [WindowEventHandlersEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WindowEventHandlersEventMap/)\[[K](#addeventlistenerk)\],  
        ) \=> any,  
        options?: boolean | AddEventListenerOptions,  
    ): void[](#addeventlistener-1)
    
    #### Type Parameters
    
    -   K extends keyof [WindowEventHandlersEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WindowEventHandlersEventMap/)
    
    #### Parameters
    
    -   type: [K](#addeventlistenerk)
    -   listener: (this: WindowEventHandlers, ev: [WindowEventHandlersEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WindowEventHandlersEventMap/)\[[K](#addeventlistenerk)\]) \=> any
    -   `Optional`options: boolean | AddEventListenerOptions
    
    #### Returns void
    
-   addEventListener(  
        type: string,  
        listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/),  
        options?: boolean | AddEventListenerOptions,  
    ): void[](#addeventlistener-2)
    
    #### Parameters
    
    -   type: string
    -   listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/)
    -   `Optional`options: boolean | AddEventListenerOptions
    
    #### Returns void
    

### removeEventListener[](#removeeventlistener)

-   removeEventListener<[K](#removeeventlistenerk) extends keyof [WindowEventHandlersEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WindowEventHandlersEventMap/)\>(  
        type: [K](#removeeventlistenerk),  
        listener: (  
            this: WindowEventHandlers,  
            ev: [WindowEventHandlersEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WindowEventHandlersEventMap/)\[[K](#removeeventlistenerk)\],  
        ) \=> any,  
        options?: boolean | EventListenerOptions,  
    ): void[](#removeeventlistener-1)
    
    #### Type Parameters
    
    -   K extends keyof [WindowEventHandlersEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WindowEventHandlersEventMap/)
    
    #### Parameters
    
    -   type: [K](#removeeventlistenerk)
    -   listener: (this: WindowEventHandlers, ev: [WindowEventHandlersEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WindowEventHandlersEventMap/)\[[K](#removeeventlistenerk)\]) \=> any
    -   `Optional`options: boolean | EventListenerOptions
    
    #### Returns void
    
-   removeEventListener(  
        type: string,  
        listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/),  
        options?: boolean | EventListenerOptions,  
    ): void[](#removeeventlistener-2)
    
    #### Parameters
    
    -   type: string
    -   listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/)
    -   `Optional`options: boolean | EventListenerOptions
    
    #### Returns void
