比较简单的历史记录管理技术是通过location.hash和hashchange事件来实现的。
在浏览器中设置location.hash会改变当前的URL,同时也会在浏览器的历史记录中增加一条记录。
支持HTML5的浏览器当发现URL中的片段发生变化时,就会在Window对象上触发一个hashchange事件。
这样,在支持hashchange事件的浏览器中,就可以通过设置window.onhashchange为一个处理函数,使得每次历史记录变换导致hash标识符变化的时候,都会调用相应的处理函数。在处理函数中可以对location.hash的值进行解析,然后根据该值进行相应的处理。
此外,HTML5中还定义了一个相对更加复杂和强健的历史记录管理方法,包含history.pushState()方法和popstate事件。
当Web应用进入一个新的状态时,会调用history.pushState()方法,将该状态添加到浏览器的历史记录中。该方法的第一个参数是一个对象,该对象包含用于恢复当前文档状态所需的所有信息;该方法的第二个可选参数是一个可选的标题(普通的文本字符串);该方法的第三个参数是一个可选的URL,表示当前状态的位置。
除了,pushState()方法外,history对象还定义了replaceState()方法,该方法和pushState()方法接受同样的参数,但它是用新的状态代替当前的历史状态。
当通过“后退”和“前进”按钮浏览保存的历史状态时,浏览器会在window对象上触发一个popstate事件,与该事件相关联的事件对象有一个state属性,该属性包含传递给pushState()方法的状态对象的副本。
相关推荐
HistoryLocation是包装 HTML5 历史 API。 // ececute http://example.com/ import { HashLocation } from 'common-history' ; const hashLocation = new HashLocation ( ) ; // It is executed each time the ...
HTML5 历史 API 管理器现代浏览器支持使用 JavaScript 更新浏览器 URL 并将状态数据与更新后的 URL 关联的功能。 此实用程序旨在满足本机 API 中的几个差距。 定义在调用 pushState 和触发 onpopstate 事件时执行的...
这里使用的是html5中的history.state 来解决。 网上已经有了js的开源解决方案pushState。详见pjax 但是这个方案不适合我的项目(后台项目),尤其是主要的方法有点不够用。 我使用的是 jquery.history.js 可以...
通过popstate或hashchange进行历史记录管理。 在不重新加载的情况下替换页面的URL,并在较旧的浏览器上回退到Hashchange。 该插件是MooTools 一部分 。 建造 通过构建,需要和已注册到Packager packager ...
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...
这个新的window.appHistory API位于现有API和规范基础之上,具有定义明确的交互点。 主要区别在于它的作用范围仅限于当前的原点和框架,并且设计使用起来令人愉悦,而不是具有许多尖锐边缘的历史性事故。概括现有的...
浏览器的剪贴板管理器扩展:复制文本的历史记录,同步剪贴板项目,即时粘贴 剪贴板历史记录专业版是您浏览器中最受欢迎的剪贴板管理器。 它会保存您复制的每个文本,管理剪贴板历史记录,并帮助您进行日常复制粘贴...
毕-设 业-计 (二零 届) 基于数据挖掘的图书馆数据管理系统的设计和实现 所在学院 专业班级 计算机科学与技术 学生姓名 学号 指导教师 职称 完成日期 年 月 摘要:目前,绝大多数的图书馆实现了信息化管理 ,在业务...
前端技术栈 vue cli + elementUI + Vuex 后端技术栈 springBoot+springSecurity+JPA+Redis 项目使用 # 安装项目依赖 npm install ... # vue-router使用history模式下的必须配置 try_files $uri $uri/ /
router-link ... 通过 to 属性指定目标地址,默认渲染成带有...无论是 HTML5 history 模式还是 hash 模式,它的表现行为一致,所以,当切换路由模式,或者在 IE9 降级使用 hash 模式,无须作任何变动;在 HTML5 history
- 完美取代FTP管理:可用于服务器文件管理,zip解压缩 备份还原、支持图片、音乐、视频预览、office、pdf等格式在线预览。文件夹拖拽上传……。 - 在线编程:支持几乎所有编程语言的在线编辑(高亮,多光标编辑.堪比...
Search, Replace, History, Case options, Insert file/ link/ image/ time/ date/ symbols/ table / html table. Import from txt, wri, rtf, TreePad, CSV, Excel, Word, html, Palm Doc (PDB, PRC) and more. ...
如果您使用管理Ruby,则可以通过将bundler选项设置为true来使用bundle exec执行Slim编译。 默认情况下,它设置为false 。 历史 您可以在History.md文件中发现历史记录 ##注意此插件在很大程度上受到影响的真棒萨斯 ...
longstory.js是一个用来管理、纪录网页状态的javascript library,以ECMA Script 5语法开发,一般主流浏览器皆适用(IE11可) -- 这边所说的「网页状态」指的是html5原生使用的history物件所纪录的state,...
由于潜在的混杂来源,难以理解一个人在HTML5历史API堆栈中的位置并预测更改的影响 综上所述,引入客户端状态管理后,这些挑战将在应用程序中产生“全面”效果。 由于单个路由器系统必须负责许多方面,并协调这么多的...
版本 1.0 目标 管理员控制面板 后提交 图片上传 音乐上传或解析链接(YouTube、Soundcloud 等) 客户端音乐播放器 (HTML5),带有简单的播放列表(将新文件添加到列表末尾) 浏览网站时保持音乐(History API)版本 ...
3.1. 安装包管理器 6 3.2. 高亮类 7 3.2.1. Bracket Highlighter 7 3.2.2. CNPunctuationAutopair 7 3.3. Markdown 7 3.3.1. MarkdownEditing 7 3.3.2. Markdown Extended 7 3.3.2.1. 需要Monokai Extended主题进行...
11 FTP之创建文件夹及MD5校验思路 第33章 01 操作系统历史 02 进程的概念 03 线程的概念 04 线程的调用以及join方法 05 setDaemon方法和继承式调用.baiduyun.downloading 05 setDaemon方法和继承式调用 第34章 ...
网址工具包路由和 URL 管理器的轻量级实现在 html5 History API 和 IE 的 hashbang 之间自动切换用法AMD 和 OzJS URLKit 既可以被视为一个独立的库,也可以被视为的一部分。 它被包装成一个模块。 您应该将它与 (或...