HTML5 history API introduction
history is a global variable, that is, window.history
The properties and methods are as follows:
length: The number of records in the history stack.
back(): Return to the previous page.
foward(): Forward to the next page.
go([delta]): delta is a number, if it is 0 or empty, refresh this page, if it is positive, then Go forward [delta] pages, if negative, go back [delta] pages.
HTML5 adds the following two methods:
##pushState(data, title, [,url ]): Insert a record at the top of the history stack.
data is an object or null, which will be passed as the state parameter in the window's popstate event (window.onpopstate).
title is the title of the page. Currently, all browsers ignore this parameter.
url is the page url, if not written, it is the current page.
replaceState(data, title, [,url]): Change the history of the current page. This change will not access the URL.
The URL parameters of replaceState() must be exactly the same as the protocol (such as HTTP, HTTPS) and domain name of the current page (using different subdomains will not work)
Currently Only supported by Safari 5.0, Chrome 8.0, Firefox 4.0 and iOS 4.2.1. If you want to be compatible with old browsers, you can try History.js, and it also fixes some bugs.
pushState and replaceState use:
<?php $photo = isset($_GET['id'])? $_GET['id'] : 1; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>test</title> <script type="text/javascript"> function go(c){ document.title = 'test' + c; //更改title window.history.pushState({'title':'test'+c, 'photo':c}, 'test'+c, 'test.php?id='+c); // 插入前一页历史记录 window.history.replaceState({'title':'test'+c, 'photo':c},'test'+c, 'test.php?id='+c); // 更改当前历史记录 document.getElementById("photo").src = c + '.jpg'; } window.onpopstate = function(obj){ if(obj.state!=null){ document.title = obj.state.title; // 后退时更新title document.getElementById("photo").src = obj.state.photo + '.jpg'; } } </script> </head> <body> <p> <a href="javascript:void(0)" onclick="go(1)">page 1</a> <a href="javascript:void(0)" onclick="go(2)">page 2</a> <a href="javascript:void(0)" onclick="go(3)">page 3</a> <a href="javascript:void(0)" onclick="go(4)">page 4</a> </p> <p><img src="<?=$photo ?>.jpg" id="photo"></p> </body> </html>
window.onpopstate method:
window.onpopstate = function(event){ alert(event.state); }
Introduction to bubbling, dichotomy insertion, quick sort algorithm
Explain how PHP supports breaking Related content of the file download class that you click on to resume the upload
How to filter the html tag attribute class through php
The above is the detailed content of Introduction to HTML5 history API. For more information, please follow other related articles on the PHP Chinese website!