具体解释window.history
Window.history保存用户在一个会话期间的站点訪问记录,用户每次訪问一个新的URL即创建一个新的历史记录。
history.go()、history.back()、history.forward()
history.back()和history.forward()分别表示向后一页和向前一页。
history.go(num)表示向前或向后翻多少页。num为正数表示向前翻。为负数则向后翻。
History.back()等价于history.go(-1),history.forward()等价于history.go(1)。
运行这三个中的任一方法,触发浏览器的popstate事件,假设仅仅是hash部分发生变化。还可能同一时候触发hashchange事件。
改动站点路径并创建新的历史记录
history.pushState(statedata, title, url);
參数URL必须和当前URL同源。否则会报错。仅仅能够改动URL中路径、井号之后的片段(即hash)或者URL中问号(?)之后的查询区段。
每运行一次pushState()用新的URL替换掉当前URL。即地址栏URL会变,window.location.href也会变,同一时候创建一个新的历史记录。但运行pushState()永远不触发hashchange事件。
參数statedata能够是不论什么被序列化的数据。这些数据被保存在用户硬盘上。但状态数据有限制大小,比方Firefox仅仅同意640KB字符。
使用pushState()的优点:仅仅改URL的hash部分,window.location使用的是同一个document。
兼容性问题
pushState直到IE10才被支持,在早版本号的IE中仅仅能通过改动window.location=”#foo”完毕。但这样会触发hashchange事件。
改动站点路径但不创建新的历史记录
看标题就知道了,replaceState()和pushState()的唯一差别是不创建新的历史记录。而是直接改动当前历史记录。
history.replaceState(stateData, title, url);
历史记录状态
有两种方式能够訪问历史訪问记录的状态信息,history.state返回历史訪问堆栈最顶端的记录的状态;而PopStateEvent.state值有在PopStateEvent事件触发的时候在事件监听中才干訪问。
State的默认值在不同浏览器可能不同。比方IE10下面默认是undefiend,但IE10和IE11默认是null。
HTML5推荐使用nul为默认值。
事件
popstate事件
调用history.back()、history.forward()、history.go()等方法。会触发popstate事件,单纯调用pushState()或replaceState()不触发popstate事件。
訪问事件的state属性可获取当初pushState()或replaceState()设置的状态数据。
具体解释window.history的更多相关文章
- 使用ajax和window.history.pushState无刷新改变页面内容和地址栏URL
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- js pjax 和window.history.pushState,replaceState
原文:http://blog.linjunhalida.com/blog/pjax/ github:https://github.com/defunkt/jquery-pjax 什么是pjax? 现在 ...
- 使用ajax和window.history.pushState无刷新改变页面内容和地址栏URL (转)
在访问现在很火的google plus时,细心的用户也许会发现页面之间的点击是通过ajax异步请求的,同时页面的URL发生了了改变.并且能够很好的支持浏览器的前进和后退.不禁让人想问,是什么有这么强大 ...
- safari 浏览器window.history.go(-1)运行无效解决办法
这几天做了几个手机端app的wap页面,做完之后发现一个问题,那就是ios系统下的safari浏览器不支持window.history.go(-1)..无语... 解决方法很简单!加上return f ...
- javascript:window.history.go(-1)
history是你浏览过的网页的url(简单的说就是网址)的集合,也就是你的浏览器里的那个历史记录.它在js里是一个内置对象,就跟document一样,它有自己的方法,go就是其中一个. 这个方法的参 ...
- window.history 和 DWZ 框架
DWZ框架的ajax请求返回的一般都是一个HTML片段,整个页面是由一个个HTML片段组成的,可以由TAB切换其内容,但是只有一个body和HEAD,一般head 和 菜单栏是不会动的. 今天遇到一个 ...
- window.history.pushState与ajax实现无刷新更新页面url
ajax能无刷新更新数据,但是不能更新url HTML5的新API: window.history.pushState, window.history.replaceState 用户操作history ...
- javascript宿主对象之window.history
window.historys属性允许我们操作同一个浏览器回话中的已访问页面,例如我们可以看到在这之前我们浏览页面的数量: window.history.length 由于隐私保护,我们无法获取这些页 ...
- 由window.history.back()引发的问题
由window.history.back()引发的问题 编写人:CC阿爸 2015-1-30 今天在这里,我想与大家一起分享由windows.history.back()引发的问题,笔者在实际开发当中 ...
随机推荐
- win32应用程序和win32控制台应用程序的区别
win32应用程序是有窗体的(当然也可以没有),有Windows消息循环机制的.而win32控制台应用程序只是在控制台下运行的程序,类似以前dos的程序. 后续答案: Win32 Appl ...
- Beautiful Soup 4.2.0 doc_tag、Name、Attributes、多值属性
找到了bs4的中文文档,对昨天爬虫程序里所涉及的bs4库进行学习.这篇代码涉及到tag.Name.Attributes以及多值属性. ''' 对象的种类 Beautiful Soup将复杂HTML文档 ...
- linux下ls出现文件的后缀有@,* ,/之类的解释
ls -Fafptool* img_maker* lzcmp@ lzfgrep@ lzma* lzmore* node-pre-gyp@bower@ ...
- map函数的应用:UVa156-Ananagrams
Ananagrams Most crossword puzzle fans are used to anagrams - groups of words with the same letters i ...
- Luogu 2216 [HAOI2007]理想的正方形 (单调队列优化)
题意: 给出一个 N×M 的矩阵,以及一个数值 K ,求在给定的矩阵中取出一个 K×K 的矩阵其中最大值减去最小值的最小值. 细节: 没有细节来发暴力走天下,20分也是分啊~~~ QAQ. 分析: 感 ...
- Git常用的基本操作
一.如何学习git指令 1.查看帮助:git help2.查看指定命令:git help clone3.搜索关键字:/chone 4.退出帮助文档:输入Q 二.常见命令 1.初始化git本地仓库:先进 ...
- 00031_ArrayList集合中常用的方法
1.ArrayList集合提供的一些常用方法 import java.util.ArrayList; public class ArrayListDemo01 { public static void ...
- pytest分布式执行(pytest-xdist)
前言 平常我们手工测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟.如果一个测试人员执行需要1000分钟才能执行完,当项目非常紧急的时候, 我们会用测试人力成本换取时间成本,这个时候多找 ...
- [android 开发篇] 易白教程网址
http://www.yiibai.com/android/android_bluetooth.html
- 【bzoj4930】棋盘 费用流
题目描述 给定一个n×n的棋盘,棋盘上每个位置要么为空要么为障碍.定义棋盘上两个位置(x,y),(u,v)能互相攻击当前仅 当满足以下两个条件: 1:x=u或y=v 2:对于(x,y)与(u,v)之间 ...