HTML5 history API 介绍

JavaScript History API:探索浏览器历史记录的全面指南 History对象是Window对象的一个属性,它包含了关于当前文档的浏览历史的信息。通过History对象,你可以实现页面的前进、后退、刷新等操作。JavaScript的History对象是一个功能强大的工具,它允许开发者与浏览器的历史记录进行交互。通过掌握History对象的属性和方法,你可以实现各种复杂的导航和URL操作需求。希望本文能够帮助你更好地理解和应用History对象,提升你的Web开发技能。 阅读详情

HTML5 history API介绍

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


属性和方法如下:

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 使用:

<?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方法:

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


iOS签名报错ec=-22411与hsc=401:XcodeToken认证失败排查指南 在移动应用开发与分发中,身份认证是保障服务安全的核心机制,其原理基于令牌交换与风控策略。当签名工具申请XcodeToken时,若出现hsc=401未授权或ec=-22411错误码,通常意味着Apple ID认证链路中断,涉及SRP协议握手、双重认证及设备信任记录等环节。理解这些基础概念,有助于快速定位账号风控、令牌超限或工具兼容性问题。典型场景包括新账号签名、频繁操作触发限制等。本文围绕证书申请失败中的XcodeToken错误,提供从账号状态检查到信任记录建立的完整排查流程,帮助开发者恢复签名能力。 阅读详情

相关推荐

iOS签名报错hsc=401 ec=-22411:Apple ID认证失败排查与解决

在iOS应用签名过程中,Apple ID认证是获取开发证书和描述文件的核心环节。其原理是签名工具通过Apple ID向苹果服务器申请Xcode Token,进而完成证书申请与IPA签名。然而,免费账号权限限制、双重认证缺失或工具协议不匹配常导致认证失败,表现为hsc=401 ec=-22411等错误码。解决这类问题需从账号状态、工具版本、登录环境及证书清理等多维度排查,尤其要关注免费账号的证书数量限制与风控策略。本文针对证书申请失败场景,提供从报错分析到实操解决的完整指南,帮助开发者快速恢复签名流程。

weixin_29207439的博客 367

JavaScript History API概述

现代Web应用程序可以使用历史API访问用户的浏览历史记录。 随着HTML5,你也可以操纵具有很大的灵活性历史条目。 本教程为JavaScript的历史API的概述,并说明了如何在设计现代Web应用程序使用此功能。 控制历史 历史API允许开发者添加,删除和替换历史项,改变后退和前进按钮的行为。 此外,您还可以提取状态信息,并使用它来操纵文档的内容。 所有这一切都是用做history的属性-...

300

Ansys EM 2026 R1安装部署与License配置避坑指南

电磁仿真作为高频天线、电机设计与信号完整性分析的核心手段,其工具链的稳定部署直接决定工程效率。Ansys Electronics Desktop基于有限元法与边界元法求解电磁场问题,而多物理场耦合则进一步扩展了仿真边界。新版2026 R1在HFSS求解效率与电磁-热-结构耦合流程上均有优化,但安装体验却常被环境问题拖累。典型如“ansys license manager 安装显示文件夹错误”多源于非英文路径或权限不足;而“failover feature not available”则往往指向授权featu

weixin_33861800的博客 254

history.pushState() 和 history.replaceState() 方法

Internet Explorer 10 引入了对 HTML5 草案规范的历史记录界面的支持,该历史记录界面包括用来管理站点的历史记录堆栈和 URL 的方法。 这个控件可以为最终用户提供他们期望从“后退”和“前进”按钮获得的体验,以及在不借助导航或页面加载的情况下提供少量页面更新的性能。HTML5 历史记录的相关定义位于万维网联合会 (W3C) 的 HTML5 规范的第 5.4.2 节。

li_star的专栏 1万+

关于JavaScript history 对象详解

我们浏览一个网页时可能不太会注意网页前进后退这些操作,但是在开发时你是否想过页面之间的跳转经历了什么,浏览器时怎么保存的页面信息,重新返回上一个页面的时候是否需要重新加载页面呢,会有很对疑问,要想解决这些问题,首先需要知道浏览器中的。

hdxx2022的博客 388

保姆级教程:用北醒TFmini-i-CAN雷达给PixHawk飞控加装‘眼睛’,实现自动避障与定高

经过多次测试,前向雷达的最佳安装位置是机架前部下方5-10cm处,倾斜角度20-30度。电源方面,建议为CAN设备单独供电,避免电机启动时的电压骤降导致数据异常。北醒TFmini-i-CAN雷达与PixHawk飞控的组合,为DIY爱好者打开了低成本实现智能避障的大门。实际部署时,需确保整个CAN网络的波特率一致(TFmini-i默认为250kbps),每个设备具有唯一ID。雷达的安装角度也直接影响检测效果,建议通过3D打印支架将雷达向前下方倾斜15-30度。当使用多个雷达时,需为每个设备创建独立的参数组。

weixin_30892889的博客 337

深入理解 history API

这篇博客介绍了前端开发中常用的 History API,包括浏览器历史、哈希历史和内存历史等环境,以及常用的方法和创建不同环境历史对象的方式。通过深入理解 History API,开发者可以更好地控制浏览器的历史记录,实现页面导航和状态管理,提升用户体验和应用的功能性。

JudithHuang的博客 1293

演化计算(蚁群算法、粒子群算法、遗传算法、演化规则......)

演化算法1.概念2.解决的问题 1.概念 传统算法(如梯度下降法、爬山法)根据导数的性质决定迭代的方向;而演化计算是一组解在一起协同作用产生一个最优解。 2.解决的问题 预测优化:演化计算(蚁群算法、粒子群算法、遗传算法等) 解的聚散、多样性:通过多次聚散,尽快得出最优解(某个解不合要求,要能够发散出去) ...

dear_jing的博客 4162

JavaScriptAPI编程_History对象(获取浏览历史)

JavaScript history 对象中包含了用户在浏览器中访问过的历史记录,其中包括通过浏览器浏览过的页面,以及当前页面中通过加载的页面。我们可以通过 window 对象中的 history 属性来获取 history 对象,由于 window 对象是一个全局对象,因此在使用window.history时可以省略 window 前缀,例如window.history.go()可以简写为history.go()。下表中列举了 JavaScript history 对象中常用的属性及其描述:示例 下表中列

JiuMeilove的博客 3万+

保姆级教程!Python爬虫爬取知乎回答,保存为Markdown文件

本教程实现了知乎公开回答的完整爬取与Markdown保存,核心流程为「请求页面→解析作者/时间/正文/图片→下载图片→保存MD文件」,步骤清晰,代码可直接复用关键特性:支持合并/单文件两种保存模式、自动下载图片并引用、中文乱码防护、非法文件名过滤,满足日常整理知乎回答的需求新手友好:无需复杂配置,仅需修改知乎问题URL即可运行,全程无坑,5分钟内可看到运行结果灵活扩展:支持进阶优化(登录、分页、格式完善),可根据个人需求调整功能。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1232

Xilinx FPGA平台GTX简易使用教程(汇总篇)

Xilinx平台GTX简易使用教程,先“知其然”,慢慢再研究“所以然”。

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 3万+

JS--JavaScript中的History对象API、screen对象的API、设置弹出窗口居中

history对象 history对象存储浏览器窗口的浏览历史,通过window对象的history属性可以访问该对象。实际上,history对象存储最近访问的、有限条目的URL信息。为了保护客户端浏览信息的安全和隐私,history对象禁止JavaScript脚本直接操纵这些访问信息。 History对象允许使用length属性读取列表中URL的个数,并可以调用back()、forward()和...

吴声子夜歌的博客 895

使用MATLAB进行灰色预测 GM(1,1)

使用MATLAB进行灰色预测 GM(1,1)

Hou_____的博客 997

使用 History API 构建 JavaScript 路由器

在本文中,我们将构建一个客户端路由系统。客户端路由是一种路由类型,用户在其中导航应用程序,即使页面的 URL 发生更改,也不会重新加载整个页面,而是显示新内容。 为了构建它,我们需要一个简单的服务器来提供我们的index.html文件。准备好?让我们开始。 让我们为我们的 HTML 创建一个简单的样板: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <

allway2的博客 460

多后端系统统一聚合与智能分流:用 Multi Origin Composition 与 Routing 打造一套可扩展的 SAP Gateway 架构

本文针对企业级SAP集成场景,详细介绍了如何利用SAP Gateway的MOC(多源组合)和Routing功能实现多后端系统的智能路由与数据聚合。通过系统别名配置、用户角色绑定和主机名分流等机制,可实现按用户、按域名的精确路由。文章还提供了配置清单、性能优化建议和常见问题解决方案,帮助工程师落地多后端OData服务的最佳实践。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 186

工业相机,大恒,面振相机8脚电源线和I/O触发接口线,颜色和接法说明和触发软件设定

上图: 说明一下,工业相机有TTL逻辑电平触发,也有光耦触发等。 这里一般我们用电路板驱动,就用GPIO触发模式, 这里,准备了两个GPIO触发模式,为LINE2,LINE3都可以选择,然后有一个GPIO_GND 如果,你只有一个触发接口,那么如图,选两个就好了。 实际接法如图。 ...

山云的专栏 1万+

Chromium 中js History API接口c++代码实现

按指定的数据、名称和 URL(如果提供该参数),更新 history 栈上最新的条目。比如:参数为 -1 的时候为上一页,参数为 1 的时候为下一页。当你指定了一个越界值(例如:当会话历史记录中没有之前访问的页面时,则传参的值为 -1,那么这个方法没有任何效果也不会报错。),该整数表示会话历史中元素的数目,包括当前加载的页。此异步方法转到浏览器会话历史的下一页,与用户单击浏览器的 Forward 按钮的行为相同。此异步方法转到浏览器会话历史的上一页,与用户单击浏览器的 Back 按钮的行为相同。

杰克东的专栏 992

如何使用VNC对openEuler系统进行远程图形化操作

本文详细介绍了在openEuler系统中配置VNC远程图形化操作的方法。主要内容包括:1)服务端配置:安装GNOME图形界面和TigerVNC服务,创建VNC用户并设置密码,配置VNC服务启动脚本;2)客户端连接:使用VNC Viewer等工具连接服务器;3)常见问题解决方法。通过5901端口建立连接后,用户可远程操作openEuler图形界面,适用于需要图形化管理的场景。

2501_93651177的博客 314

前端必知必会-JavaScript History API

本文介绍了JavaScript History API的使用,如有问题欢迎私信和评论。

qq_24018193的博客 540

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

html5新增apihistory,深入探究HTML5的History API

History是有趣的,不是吗?在之前的HTML版本中,我们对浏览历史记录的操作非常有限。我们可以来回使用可以使用的方法,但这就是一切我们能做的了。但是,利用HTML 5的History API,我们可以更好的控制浏览器的历史记录了。例如:我们可以添加一条记录到历史记录的列表中,或者在没有刷新时,可以更新地址栏的URL。为什么介绍History API ?在这篇文章中,我们将了解HTML 5中Hi...

weixin_35044595的博客 514

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

FPGA以太网UDP协议栈实战:verilog-ethernet仿真到上板

在FPGA网络通信中,以太网MAC、ARP、IPv4与UDP构成典型协议栈,模块间常以AXI-Stream握手串联。理解前导码、CRC、IP首部、UDP端口与校验和,以及GMII/RGMII接口时序,是打通数据通路的关键。其技术价值在于把复杂网络协议拆成可仿真、可调试的流水线,降低从零开发MAC的门槛。应用场景覆盖图像传输、传感器数据回传、命令控制与板卡间高速通信。围绕verilog-ethernet开源工程,从仿真环境、上板PHY/时钟/复位到抓包排障,逐步跑通UDP收发与吞吐优化。

weixin_34161083的博客 502

关于HTML5 的history API介绍与使用

上一篇我们介绍了H5的营销,那么H5的营销必然会设计到一些技术性的问题,那么本篇我们就介绍H5的一些新型特性。这些痕迹就保存在history中,在现在热火的移动终端,以微信为首的H5开发已不再稀有,越来越多的产品正向着H5转型,那么我们将面临一些问题,例如我们在微信公众号中点击了某个页面的链接然后如此循环点击页面中的链接,那么浏览器的history的堆栈中就会存储一堆记录,当想返回到公众号的主页面...

iteye_20131的博客 545

history对象和HTML5 History API

一、浏览器的history对象 1.history对象简介 History对象是window对象的一部分,包含用户访问过的URL,可以通过window.history访问。所有浏览器都支持这个对象。 2.history对象属性 length:返回历史列表中的网址数。 如果当前窗口访问了一个网址,那么history.length属性就为1。 3.history对象方法 history...

E_li_na的博客 957

JS--history--使用/教程/实例

本文用示例介绍JavaScript中history的用法。

IT利刃出鞘的博客 6021

HTML5 History API实现无刷新跳转

HTML5 History实现了那些API?    在HTML5中,   1. 新增了通过JS在浏览器历史记录中添加项目的功能。       2. 在不刷新页面的前提下显示改变浏览器地址栏中的URL。       3. 添加了当用户单击浏览器的后退按钮时触发的事件。  通过以上三点,可以实现在不刷新页面的前提下动态改变浏览器地址栏中的URL,动态显示页面内容。  比如: 当页面A和页面...

weixin_34303897的博客 295

history API

这里讲的history包括两个,一个是宿主对象history,一个是HTML5的history API。 宿主对象history history包括三个方法和一个属性: 属性/方法 描述 length 返回浏览器历史列表中的 URL 数量。 back() 加载 history 列表中的前一个 URL。 f

熊猫正尽责 1330
上一篇: 11个实用的Apache .htaccess配置
下一篇: 冒泡,二分法插入,快速排序算法
傲雪星枫
博客等级 码龄15年 2307粉丝 306原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值