Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/feross/location-history
Lightweight browser location history abstraction
https://github.com/feross/location-history
Last synced: about 14 hours ago
JSON representation
Lightweight browser location history abstraction
- Host: GitHub
- URL: https://github.com/feross/location-history
- Owner: feross
- License: mit
- Created: 2016-07-29T01:46:40.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2020-05-25T04:26:17.000Z (over 4 years ago)
- Last Synced: 2024-05-02T05:38:47.697Z (7 months ago)
- Language: JavaScript
- Homepage:
- Size: 17.6 KB
- Stars: 69
- Watchers: 5
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# location-history [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]
[travis-image]: https://img.shields.io/travis/feross/location-history/master.svg
[travis-url]: https://travis-ci.org/feross/location-history
[npm-image]: https://img.shields.io/npm/v/location-history.svg
[npm-url]: https://npmjs.org/package/location-history
[downloads-image]: https://img.shields.io/npm/dm/location-history.svg
[downloads-url]: https://npmjs.org/package/location-history
[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg
[standard-url]: https://standardjs.com### Lightweight browser location history abstraction
Works in the browser with [browserify](http://browserify.org/)! This module is used by [WebTorrent Desktop](http://webtorrent.io/desktop).
## install
```
npm install location-history
```## usage
```js
var LocationHistory = require('location-history')var location = new LocationHistory()
// Navigate to a page
location.go({ url: 'first-url', data: 'hi' })console.log(location.current()) // { url: 'first-url', data: 'hi' }
console.log(location.url()) // 'first-url'// Navigate to a second page
location.go({ url: 'second-url' })console.log(location.url()) // 'second-url'
// Go back one page
location.back()console.log(location.url()) // 'first-url'
// Go forward one page
location.forward()console.log(location.url()) // 'second-url'
```## api
### `location = LocationHistory()`
Create a new location history instance.
### `location.current()`
Returns the current page object.
### `location.url()`
Return the current page object's `url` property.
### `location.go(page, [callback])`
Navigate to a new page. `page` should be an object with a `url` property.
Optionally, specify a `setup` function property to be called before the page
becomes the current one. `setup` will be passed a `callback` function that should
be called with a `null` or `Error` object as the first property.```js
location.go({
url: 'my-url',
setup: function (cb) {
setTimeout(function () { // ... do any async operations
cb(null)
}, 100)
}
})
```Optionally, specify a `destroy` function property to be called after the page is
replaced with another one.```js
location.go({
url: 'my-url',
destroy: function () {
// ... do any cleanup operations
}
})
```### `location.back([callback])`
Navigate to the previous page. If there is no previous page, this does nothing.
Optionally, specify a `callback` function to be called after the next page is
loaded (in case it has a `setup` function).### `location.forward([callback])`
Navigate to the forward page. If there is no forward page, this does nothing.
Optionally, specify a `callback` function to be called after the next page is
loaded (in case it has a `setup` function).### `location.cancel([callback])`
Navigate to the previous page, and remove the current page from the history. If
there is no previous page, this does nothing.If you want the current page to stay in history (accessible via `forward()`), see
`back()`.Optionally, specify a `callback` function to be called after the next page is
loaded (in case it has a `setup` function).### `location.hasBack()`
Returns `true` if there is a previous page, else `false`.
### `location.hasForward()`
Returns `true` if there is a forward page, else `false`.
### `location.backToFirst([callback])`
Navigate to the first page. Optionally, specify a `callback` function to be
called after the first page is loaded.### `location.clearForward([url])`
Clear all forward pages. Useful in situations where the forward page no longer
exists in the app.Optionally, specify a `url` and only pages with the given `url` will be removed.
## license
MIT. Copyright (c) [Feross Aboukhadijeh](http://feross.org).