欢迎 What's new in Chrome extensions Get help with Chrome extensions API reference Samples
欢迎 What's new in Chrome extensions Get help with Chrome extensions API reference Samples

chrome.history

  • Description

    Use the chrome.history API to interact with the browser's record of visited pages. You can add, remove, and query for URLs in the browser's history. To override the history page with your own version, see Override Pages.

  • Permissions
    history
    This permission triggers a warning.

Manifest

You must declare the "history" permission in the extension manifest to use the history API. For example:

{
"name": "My extension",
...
"permissions": [
"history"
],
...
}

Transition types

The history API uses a transition type to describe how the browser navigated to a particular URL on a particular visit. For example, if a user visits a page by clicking a link on another page, the transition type is "link".

The following table describes each transition type.

Transition typeDescription
"typed"The user got this page by typing the URL in the address bar. Also used for other explicit navigation actions. See also generated, which is used for cases where the user selected a choice that didn't look at all like a URL.
"auto_bookmark"The user got to this page through a suggestion in the UI—for example, through a menu item.
"auto_subframe"Subframe navigation. This is any content that is automatically loaded in a non-top-level frame. For example, if a page consists of several frames containing ads, those ad URLs have this transition type. The user may not even realize the content in these pages is a separate frame, and so may not care about the URL (see also manual_subframe).
"manual_subframe"For subframe navigations that are explicitly requested by the user and generate new navigation entries in the back/forward list. An explicitly requested frame is probably more important than an automatically loaded frame because the user probably cares about the fact that the requested frame was loaded.
"generated"The user got to this page by typing in the address bar and selecting an entry that did not look like a URL. For example, a match might have the URL of a Google search result page, but it might appear to the user as "Search Google for ...". These are not quite the same as typed navigations because the user didn't type or see the destination URL. See also keyword.
"auto_toplevel"The page was specified in the command line or is the start page.
"form_submit"The user filled out values in a form and submitted it. Note that in some situations—such as when a form uses script to submit contents—submitting a form does not result in this transition type.
"reload"The user reloaded the page, either by clicking the reload button or by pressing Enter in the address bar. Session restore and Reopen closed tab use this transition type, too.
"keyword"The URL was generated from a replaceable keyword other than the default search provider. See also keyword_generated.
"keyword_generated"Corresponds to a visit generated for a keyword. See also keyword.

Examples

For examples of using this API, see the history sample directory and the history API test directory. For other examples and for help in viewing the source code, see Samples.

Summary

Types

HistoryItem

An object encapsulating one result of a history query.

Properties

  • id

    string

    The unique identifier for the item.

  • lastVisitTime

    number optional

    When this page was last loaded, represented in milliseconds since the epoch.

  • title

    string optional

    The title of the page when it was last loaded.

  • typedCount

    number optional

    The number of times the user has navigated to this page by typing in the address.

  • url

    string optional

    The URL navigated to by a user.

  • visitCount

    number optional

    The number of times the user has navigated to this page.

TransitionType

Chrome 44+

The transition type for this visit from its referrer.

Type

"link"

,

"typed"

,

"auto_bookmark"

,

"auto_subframe"

,

"manual_subframe"

,

"generated"

,

"auto_toplevel"

,

"form_submit"

,

"reload"

,

"keyword"

,
or

"keyword_generated"

UrlDetails

Chrome 88+

Properties

  • url

    string

    The URL for the operation. It must be in the format as returned from a call to history.search.

VisitItem

An object encapsulating one visit to a URL.

Properties

  • id

    string

    The unique identifier for the item.

  • referringVisitId

    string

    The visit ID of the referrer.

  • transition

    The transition type for this visit from its referrer.

  • visitId

    string

    The unique identifier for this visit.

  • visitTime

    number optional

    When this visit occurred, represented in milliseconds since the epoch.

Methods

addUrl

chrome.history.addUrl(
  details: UrlDetails,
  callback?: function,
)
Promise

Adds a URL to the history at the current time with a transition type of "link".

Parameters

  • details
  • callback

    function optional

    The callback parameter looks like: () => void

Returns

  • Promise<void>

    Chrome 96+

    Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.

deleteAll

chrome.history.deleteAll(
  callback?: function,
)
Promise

Deletes all items from the history.

Parameters

  • callback

    function optional

    The callback parameter looks like: () => void

Returns

  • Promise<void>

    Chrome 96+

    Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.

deleteRange

chrome.history.deleteRange(
  range: object,
  callback?: function,
)
Promise

Removes all items within the specified date range from the history. Pages will not be removed from the history unless all visits fall within the range.

Parameters

  • range

    object

    • endTime

      number

      Items added to history before this date, represented in milliseconds since the epoch.

    • startTime

      number

      Items added to history after this date, represented in milliseconds since the epoch.

  • callback

    function optional

    The callback parameter looks like: () => void

Returns

  • Promise<void>

    Chrome 96+

    Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.

deleteUrl

chrome.history.deleteUrl(
  details: UrlDetails,
  callback?: function,
)
Promise

Removes all occurrences of the given URL from the history.

Parameters

  • details
  • callback

    function optional

    The callback parameter looks like: () => void

Returns

  • Promise<void>

    Chrome 96+

    Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.

getVisits

chrome.history.getVisits(
  details: UrlDetails,
  callback?: function,
)
Promise

Retrieves information about visits to a URL.

Parameters

Returns

  • Promise<VisitItem[]>

    Chrome 96+

    Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.

chrome.history.search(
  query: object,
  callback?: function,
)
Promise

Searches the history for the last visit time of each page matching the query.

Parameters

  • query

    object

    • endTime

      number optional

      Limit results to those visited before this date, represented in milliseconds since the epoch.

    • maxResults

      number optional

      The maximum number of results to retrieve. Defaults to 100.

    • startTime

      number optional

      Limit results to those visited after this date, represented in milliseconds since the epoch. If not specified, this defaults to 24 hours in the past.

    • text

      string

      A free-text query to the history service. Leave empty to retrieve all pages.

  • callback

    function optional

    The callback parameter looks like: (results: HistoryItem[]) => void

Returns

  • Promise<HistoryItem[]>

    Chrome 96+

    Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.

Events

onVisited

chrome.history.onVisited.addListener(
  callback: function,
)

Fired when a URL is visited, providing the HistoryItem data for that URL. This event fires before the page has loaded.

Parameters

onVisitRemoved

chrome.history.onVisitRemoved.addListener(
  callback: function,
)

Fired when one or more URLs are removed from the history service. When all visits have been removed the URL is purged from history.

Parameters

  • callback

    function

    The callback parameter looks like: (removed: object) => void

    • removed

      object

      • allHistory

        boolean

        True if all history was removed. If true, then urls will be empty.

      • urls

        string[] optional

We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.