Home > Web Front-end > JS Tutorial > body text

Usage of window.history in js (1)

零下一度
Release: 2017-05-18 10:51:12
Original
3904 people have browsed it

Window.history saves the user's website access record during a session. A new history record is created every time the user accesses a new URL.

history.go(), history.back(), history.forward()

history.back() and history.forward() respectively represent backward One page and one page forward.

history.go(num) indicates how many pages to turn forward or backward. If num is a positive number, it means turning forward, and if it is a negative number, it means turning backward.

History.back() is equivalent to history.go(-1), history.forward() is equivalent to history.go(1).

Execute any of these three methods to trigger the browser's popstate event. If only the hash part changes, the hashchange event may also be triggered at the same time.

Modify the website path and create a new history record
history.pushState(statedata, title, url);
Copy after login

The parameter URL must have the same origin as the current URL, otherwise An error will be reported. You can only modify the path in the URL, the fragment after the pound sign (i.e. hash), or the query section after the question mark (?) in the URL.

Every time pushState() is executed, the current URL is replaced with a new URL, that is, the address bar URL will change, window.location.href will also change, and a new history record will be created at the same time. But executing pushState() never triggers the hashchange event.

The parameter statedata can be any serialized data that is saved on the user's hard disk. However, there are size limits for status data. For example, Firefox only allows 640KB characters.

The advantage of using pushState(): only the hash part of the URL is changed, and window.location uses the same

document.

Compatibility issues

pushState was not supported until IE10. In earlier versions of IE, it could only be accomplished by modifying window.location="#foo", but this would trigger the hashchange event.

Modify the website path but do not create a new history record

As you can see from the title, the only difference between replaceState() and pushState() is that no new history is created record, but directly modify the current history record.

history.replaceState(stateData, title, url);
Copy after login

History record status

There are two ways to access the status information of historical access records. history.state returns the status of the record at the top of the historical access stack; and The PopStateEvent.state value can only be accessed in the event listener when the PopStateEvent event is triggered. The default value of

State may be different in different browsers. For example, the default value below IE10 is undefiend, but the default value for IE10 and IE11 is

null. HTML5 It is recommended to use nul as the default value.

Event

##popstate event

Call history.back(), history.forward(), history.go( ) and other methods will trigger the popstate event. Simply calling pushState() or replaceState() will not trigger the popstate event.

Access the state attribute of the event to obtain the state data originally set by pushState() or replaceState().

【Related Recommendations】


1.

Special Recommendation:"php Programmer Toolbox" V0.1 version Download2.

Detailed introduction to the usage examples of history.pushState() in h5

3.

Usage of window.history in js ( 2)

4.

In-depth understanding of the history features in h5-pushState, replaceState

5.

The impact of the History API in h5 on Web applications

The above is the detailed content of Usage of window.history in js (1). For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template