History.js

优雅的历史api
授权协议 BSD
开发语言 JavaScript
所属分类 Web应用开发、 常用JavaScript包
软件类型 开源软件
地区 不详
投 递 者 许照
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

History.js 很优雅的支持 HTML5 History/State APIs (pushState, replaceState, onPopState),并使之在所有浏览器上都可用。包括继续支持 data, titles, replaceState. Supports jQuery, MooTools and Prototype. 对于 HTML5 浏览器而言意味着你可以直接修改 URL 地址。

在线演示:http://browserstate.github.io/history.js/demo/

示例代码:

(function(window,undefined){

    // Bind to StateChange Event
    History.Adapter.bind(window,'statechange',function(){ // Note: We are using statechange instead of popstate
        var State = History.getState(); // Note: We are using History.getState() instead of event.state
    });

    // Change our States
    History.pushState({state:1}, "State 1", "?state=1"); // logs {state:1}, "State 1", "?state=1"
    History.pushState({state:2}, "State 2", "?state=2"); // logs {state:2}, "State 2", "?state=2"
    History.replaceState({state:3}, "State 3", "?state=3"); // logs {state:3}, "State 3", "?state=3"
    History.pushState(null, null, "?state=4"); // logs {}, '', "?state=4"
    History.back(); // logs {state:3}, "State 3", "?state=3"
    History.back(); // logs {state:1}, "State 1", "?state=1"
    History.back(); // logs {}, "Home Page", "?"
    History.go(2); // logs {state:3}, "State 3", "?state=3"

})(window);
  • 原文网址:JS--history--使用/教程/实例_IT利刃出鞘的博客-CSDN博客 简介 说明         本文用示例介绍JavaScript中history的用法。         History 对象是浏览器模型中的一个对象,表示当前窗口的浏览历史,通过 window.history 获取。一个浏览器窗口从被打开时开始,所有访问过的页面地址都会保存在 History 对象中。    

  • 在 JavaScript 中,history 对象表示浏览器窗口的历史记录,允许你在用户在浏览器中访问过的 URL 之间进行前进和后退的导航。history 对象是 Window 对象的属性,所以在浏览器环境中直接访问即可。 history 对象提供了一系列用于操作历史记录的方法和属性,其中最常用的是以下几个: back(): 后退一页,相当于用户点击浏览器的“后退”按钮。 forward():

  • Ajax保留浏览器历史的解决方案 <ul class="menu"> <li><a href="/home/index#page=1">page1</a></li> <li><a href="/home/index#page=2">page2</a></li> <li><a href="/home/index#page=3">page3</a></li> </ul> <div id="mainPa

  • 1. history 原理 用户访问的页面地址会保存到一个栈中 (LIFO 后进先出) 2. history 的 go() /home ==> /home/qa ===> /home/video history.go(-1) // 返回前一个页面,history.go(-2) 往前翻回第二个页面 history.go(1) // 前进一个页面 3. history 的 replace() 和 pu

  • Javascript:history.go()和history.back()的用法与区别 简单的说就是:go(-1):返回上一页,原页面表单中的内容会丢失;back():返回上一页,原页表表单中的内容会保留。 history.go(-1):后退+刷新 history.back():后退 之所以注意到这个区别,是因为不同的浏览器后退行为也是有区别的,而区别就跟javascript:history.g

  • vue中使用history.go(-1)和history.back()两种返回上一页的区别 go(-1):原页面表单中的内容会丢失; history.go(-1):后退+刷新; history.go(1):前进; back():原页面表单中的内容会保留; history.back():后退 history.back(0):刷新 history.back(1):前进 使用路由进行页面前进时,路由会向

  • history.go()方法会使原页面表单中的内容会丢失; 用法:1. history.go(-1) 后退+刷新 。            2. history.go(1)  前进            3. history.go(URL)   URL是字符串,必须是一个完整的地址 back(): 返回上一页,原页表表单中的内容会保留; 用法 :1. history.back()  后退     

  • window.history.go( -1);   返回上一页, 原页面表单中的内容会丢失;

  • 简单的说就是:go(-1):返回上一页,原页面表单中的内容会丢失; back():返回上一页,原页表表单中的内容会保留(读取缓存,页面不会重新加载)。 history.go(-1):后退+刷新 history.back():后退 之所以注意到这个区别,是因为不同的浏览器后退行为也是有区别的,而区别就跟javascript:history.go()和history.back()的区别类似。 Chro

  • w3c的解释: History 对象属性 属性 描述 length 返回浏览器历史列表中的 URL 数量。 但是其实英文解释是: The History.length read-only property returns an integer representing the number of elements in the session history, including the curr

  • 今天在项目中遇到 要实现修改地址栏但是页面不可以刷新的需求 查阅资料发现可以用window.history.pushState(state, title, url)和window.history.replaceState(state, title, url) 三个参数: state:一个与添加的记录相关联的状态对象,主要用于popstate事件。该事件触发时,该对象会传入回调函数。也就是说,浏览器

  • windows 对象引用不是必须的,所以:windows.history.go() == history.go() go方法 go() 方法可加载历史列表中的某个具体的页面。参数只有一个,正数或者负数。 正数:前进; 负数:后退。 history.back() 后退 history.forward() 前进 window.location.reload() // 刷新 window

  • // 路由监听 export const RouterGuards = (history) => { // history.block 使用方法参考 // https://stackoverflow.com/questions/65526447/react-router-v5-2-blocking-route-change-with-createbrowserhistory-and

  • 路由监听,我们可能会使用到this.props.history.listen; 使用: 在页面挂载完监听 componentDidMount() { this.props.history.listen(route => { //route 当前路由的属性 //执行相应操作 }); } 解绑listen事件: 事实上this.props.histor

  • 通过history方法返回上一页时,返回的页面并不会刷新,这就造成了上一页的数据未及时更新,所以有时需要做刷新处理,如下 # 如果检测到页面是从“往返缓存”中读取的,刷新页面 window.addEventListener('pageshow', function(e) { if (e.persisted) { window.location.reload() } })

  • history.back()是在浏览器缓存中读取数据,后退到上一页保持原状态。但是如果上一页刚提交了什么东西,有弹框提示的话,那么在返回的时候,弹框会再次显示。 js方法解决: 可以将window.history.back()替换为 window.location.replace(document.referrer) 在大多数情况下,可以理解为返回上一页并刷新。

 相关资料
  • 历史 本书改编和包含了以下两本书的部分章节,这两本书均以GNU Free Documentation License发布。 How To Think Like A Computer Scientist: Learning with C++ 作者Allen B. Downey。原书由Green Tea Press发行,可以从http://www.greenteapress.com/下载到。 Prog

  • 大部分1980年前的 Unix 竞争者都被拴到单个硬件平台上,随着这个硬件的消亡而消亡。为什么 VMS 可以坚持这么久?值得我们作为案例研究一个原因是:VMS 成功地从最初的 VAX 硬件移植到了 Alpha 处理器(2003年正从 Alpha 移植到 Itanium 上)。MacOS 也在1980年代后期成功完成了从摩托罗拉68000到 PowerPC 芯片的迁跃。微软的 Windows 处在计

  • 你可能会困惑,最初为什么要编写Autoconf?它是如何演变到今天的形式的?(为什么它看起来就像大猩猩的吐沫?) 如果你不困惑,那么本章就不包含对你有用的信息,你也可能会跳过它。如果你困惑,那就让它明白些... 起源(Genesis) 在1991年六月,我为自由软件基金会维护了许多GNU工具。由于它们被移植到更多的平台并且增加了更多的程序, 用户必须 在'Makefile'中选择的'-D'选项的数

  • JavaScript的诞生 JavaScript的发布和标准化 ECMAScript和JavaScript的版本 周边大事记 参考链接 理解现在的最好方法之一,就是了解历史,本节将全面介绍JavaScript的历史。了解这些内容,还有助于把握JavaScript在整个计算机编程体系和计算机工业中所处的位置,以及这门语言涉及的全部内容。 JavaScript的诞生 JavaScript因为互联网而生

  • 同生活中的许多伟大事物一样,Git 诞生于一个极富纷争大举创新的年代。 Linux 内核开源项目有着为数众广的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。 到了 2005 年,开发 BitKeeper 的商业公司同 Linux

  • Cassandra最初由Facebook的两名印度人Avinash Lakshman(亚马逊Dynamo的作者之一)和Prashant Malik共同开发。 它被开发用于为Facebook收件箱搜索功能提供支持。 以下是Cassandra历史上最重要的几个事件: Cassandra在Facebook由Avinash Lakshman和Prashant Malik开发。 它是为Facebook收件箱