Home  >  Article  >  Web Front-end  >  Introduction to HTML5 history API

Introduction to HTML5 history API

jacklove
jackloveOriginal
2018-06-11 10:08:531930browse

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[&#39;id&#39;])? $_GET[&#39;id&#39;] : 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 = &#39;test&#39; + c; //更改title
    window.history.pushState({&#39;title&#39;:&#39;test&#39;+c, &#39;photo&#39;:c}, &#39;test&#39;+c, &#39;test.php?id=&#39;+c); // 插入前一页历史记录
    window.history.replaceState({&#39;title&#39;:&#39;test&#39;+c, &#39;photo&#39;:c},&#39;test&#39;+c, &#39;test.php?id=&#39;+c);  // 更改当前历史记录
    document.getElementById("photo").src = c + &#39;.jpg&#39;;
  }
  window.onpopstate = function(obj){
    if(obj.state!=null){
        document.title = obj.state.title;  // 后退时更新title
        document.getElementById("photo").src = obj.state.photo + &#39;.jpg&#39;;
    }
  }
  </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);
}

This article is about the introduction of HTML5 history API. For more related content, please pay attention to php Chinese website.

Related recommendations:

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!

Statement:
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