关于HTML5 history API 的介绍

 2022-10-23    347  

有的朋友可能对于“关于HTML5 history API 的介绍”还有很多不明白的地方,下面由77ISP云服务器技术小编为大家讲解一下,下面我们来一起看看吧!

HTML5 history API介绍

history是个全局变量,即window.history

关于HTML5 history API 的介绍

属性和方法如下:

length:历史堆栈中的记录数。

back(): 返回上一页。

foward(): 前进到下一页。

go([delta]): delta是数字,如果为0或为空则刷新本页,如果正数则前进[delta]页,如负数则后退[delta]页。

HTML5添加了以下两个方法:

pushState(data, title, [,url]):在历史堆栈顶部插入一条记录。

data为一个对象或null,会在window的popstate事件(window.onpopstate)时,作为state参数传递过去。

title为页面的标题,当前所有浏览器都忽略这个参数。

url 为页面url,不写则为当前页。
replaceState(data, title, [,url]):更改当前页面的历史记录。这种更改不会去访问该URL。
replaceState()的URL参数必须和当前页的协议(如HTTP、HTTPS)和域名完全相同(使用不同的子域都不行)
目前只有Safari 5.0+、Chrome 8.0+、Firefox 4.0+和iOS 4.2.1+支持。如果想兼容老浏览器的话,可以试试History.js,而且它还修正了一些bug。
pushState 与 replaceState 使用:

test
  
  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';
    }
  }
  
 
 
  

page 1 page 2 page 3 page 4

<img src="https://www.php.cn/.jpg" id="photo">

window.onpopstate方法:

window.onpopstate = function(event){
    alert(event.state);
}

本篇文章关于HTML5 history API 的介绍,

以上就是“关于HTML5 history API 的介绍”的详细内容,更多请关注77isp云服务器技术网其它相关文章!

原文链接:https://77isp.com/post/3703.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。