---
title: "NavigationHistoryEntry | 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 NavigationHistoryEntry

The **`NavigationHistoryEntry`** interface of the Navigation API represents a single navigation history entry.

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

interface NavigationHistoryEntry {  
    [id](#id): string;  
    [index](#index): number;  
    [key](#key): string;  
    [ondispose](#ondispose): ((this: NavigationHistoryEntry, ev: Event) \=> any) | null;  
    [sameDocument](#samedocument): boolean;  
    [url](#url): string | null;  
    [addEventListener](#addeventlistener-1)<[K](#addeventlistenerk) extends "dispose"\>(  
        type: [K](#addeventlistenerk),  
        listener: (  
            this: NavigationHistoryEntry,  
            ev: [NavigationHistoryEntryEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.NavigationHistoryEntryEventMap/)\[[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;  
    [dispatchEvent](#dispatchevent-1)(event: Event): boolean;  
    [getState](#getstate-1)(): any;  
    [removeEventListener](#removeeventlistener-1)<[K](#removeeventlistenerk) extends "dispose"\>(  
        type: [K](#removeeventlistenerk),  
        listener: (  
            this: NavigationHistoryEntry,  
            ev: [NavigationHistoryEntryEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.NavigationHistoryEntryEventMap/)\[[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

-   EventTarget
    -   NavigationHistoryEntry

##### Index

### Properties[](#properties)

[id](#id) [index](#index) [key](#key) [ondispose](#ondispose) [sameDocument](#samedocument) [url](#url)

### Methods[](#methods)

[addEventListener](#addeventlistener) [dispatchEvent](#dispatchevent) [getState](#getstate) [removeEventListener](#removeeventlistener)

## Properties[](#properties-1)

### `Readonly`id[](#id)

id: string

The **`id`** read-only property of the NavigationHistoryEntry interface returns the id of the history entry, or an empty string if current document is not fully active. This is a unique, UA-generated value that always represents a specific history entry, useful to correlate it with an external resource such as a storage cache.

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

### `Readonly`index[](#index)

index: number

The **`index`** read-only property of the NavigationHistoryEntry interface returns the index of the history entry in the history entries list (that is, the list returned by Navigation.entries()), or -1 if the entry does not appear in the list or if current document is not fully active.

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

### `Readonly`key[](#key)

key: string

The **`key`** read-only property of the NavigationHistoryEntry interface returns the key of the history entry, or an empty string if current document is not fully active. This is a unique, UA-generated value that represents the history entry's slot in the entries list. It is used to navigate that particular slot via Navigation.traverseTo(). The key will be reused by other entries that replace the entry in the list (that is, if the NavigateEvent.navigationType is replace).

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

### ondispose[](#ondispose)

ondispose: ((this: NavigationHistoryEntry, ev: Event) \=> any) | null

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

### `Readonly`sameDocument[](#samedocument)

sameDocument: boolean

The **`sameDocument`** read-only property of the NavigationHistoryEntry interface returns true if this history entry is for the same document as the current Document value and current document is fully active, or false otherwise.

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

### `Readonly`url[](#url)

url: string | null

The **`url`** read-only property of the NavigationHistoryEntry interface returns the absolute URL of this history entry. If the entry corresponds to a different Document than the current one (like sameDocument property is false), and that Document was fetched with a Referrer-Policy header set to no-referrer or origin, the property returns null. If current document is not fully active, it returns an empty string.

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

## Methods[](#methods-1)

### addEventListener[](#addeventlistener)

-   addEventListener<[K](#addeventlistenerk) extends "dispose"\>(  
        type: [K](#addeventlistenerk),  
        listener: (  
            this: NavigationHistoryEntry,  
            ev: [NavigationHistoryEntryEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.NavigationHistoryEntryEventMap/)\[[K](#addeventlistenerk)\],  
        ) \=> any,  
        options?: boolean | AddEventListenerOptions,  
    ): void[](#addeventlistener-1)
    
    The **`addEventListener()`** method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
    
    #### Type Parameters
    
    -   K extends "dispose"
    
    #### Parameters
    
    -   type: [K](#addeventlistenerk)
    -   listener: (this: NavigationHistoryEntry, ev: [NavigationHistoryEntryEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.NavigationHistoryEntryEventMap/)\[[K](#addeventlistenerk)\]) \=> any
    -   `Optional`options: boolean | AddEventListenerOptions
    
    #### Returns void
    
    Overrides EventTarget.addEventListener
    
-   addEventListener(  
        type: string,  
        listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/),  
        options?: boolean | AddEventListenerOptions,  
    ): void[](#addeventlistener-2)
    
    The **`addEventListener()`** method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
    
    #### Parameters
    
    -   type: string
    -   listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/)
    -   `Optional`options: boolean | AddEventListenerOptions
    
    #### Returns void
    
    Overrides EventTarget.addEventListener
    

### dispatchEvent[](#dispatchevent)

-   dispatchEvent(event: Event): boolean[](#dispatchevent-1)
    
    The **`dispatchEvent()`** method of the EventTarget sends an Event to the object, (synchronously) invoking the affected event listeners in the appropriate order. The normal event processing rules (including the capturing and optional bubbling phase) also apply to events dispatched manually with dispatchEvent().
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
    
    #### Parameters
    
    -   event: Event
    
    #### Returns boolean
    
    Inherited from EventTarget.dispatchEvent
    

### getState[](#getstate)

-   getState(): any[](#getstate-1)
    
    The **`getState()`** method of the NavigationHistoryEntry interface returns a clone of the developer-supplied state associated with this history entry.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationHistoryEntry/getState)
    
    #### Returns any
    

### removeEventListener[](#removeeventlistener)

-   removeEventListener<[K](#removeeventlistenerk) extends "dispose"\>(  
        type: [K](#removeeventlistenerk),  
        listener: (  
            this: NavigationHistoryEntry,  
            ev: [NavigationHistoryEntryEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.NavigationHistoryEntryEventMap/)\[[K](#removeeventlistenerk)\],  
        ) \=> any,  
        options?: boolean | EventListenerOptions,  
    ): void[](#removeeventlistener-1)
    
    The **`removeEventListener()`** method of the EventTarget interface removes an event listener previously registered with EventTarget.addEventListener() from the target. The event listener to be removed is identified using a combination of the event type, the event listener function itself, and various optional options that may affect the matching process; see Matching event listeners for removal.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
    
    #### Type Parameters
    
    -   K extends "dispose"
    
    #### Parameters
    
    -   type: [K](#removeeventlistenerk)
    -   listener: (this: NavigationHistoryEntry, ev: [NavigationHistoryEntryEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.NavigationHistoryEntryEventMap/)\[[K](#removeeventlistenerk)\]) \=> any
    -   `Optional`options: boolean | EventListenerOptions
    
    #### Returns void
    
    Overrides EventTarget.removeEventListener
    
-   removeEventListener(  
        type: string,  
        listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/),  
        options?: boolean | EventListenerOptions,  
    ): void[](#removeeventlistener-2)
    
    The **`removeEventListener()`** method of the EventTarget interface removes an event listener previously registered with EventTarget.addEventListener() from the target. The event listener to be removed is identified using a combination of the event type, the event listener function itself, and various optional options that may affect the matching process; see Matching event listeners for removal.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
    
    #### Parameters
    
    -   type: string
    -   listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/)
    -   `Optional`options: boolean | EventListenerOptions
    
    #### Returns void
    
    Overrides EventTarget.removeEventListener
