一. history 是什么?

window上的一个对象,由来存储浏览器访问过的历史

二. 用途:

可以动态跳转任意一个已在历史记录中的地址

三. history方法:

1.forward() : 向后翻一页

  1. back(): 回退一页

  2. go(num) : num为负值时 表示回退 num为正值时表示前进

  3. pushState(data, title, url): 添加一条历史记录,受同源策略限制,添加历史纪录后页面地址改变但是页面不会更新——H5新增的方法 IE9以下不兼容

  4. replaceState(data, title, url) 替换当前的历史记录,受同源策略限制,添加历史纪录后页面地址改变但是页面不会更新 —— H5新增的方法 IE9以下不兼容

四. history事件:

1.popstate: 每次地址改变时触发,注:pushSate和replaceState的时候不会触发该事件。只有当用户点击回退或前进按钮或者调用back , forward, go方法才会触发这个事件

2.hashchange: 地址栏中hash值改变的时候会触发

data:一个与指定网址相关的状态对象,popstate事件触发时,该对象会传入回调函数中。如果不需要这个对象,此处可以填null。 title:新页面的标题,但是所有浏览器目前都忽略这个值,因此这里可以填null。 url:新的网址,必须与当前页面处在同一个域。浏览器的地址栏将显示这个网址。

案例1:

history.forward() //前进一页

history.back() //回退一页

history,go(2) // 前进两页

history.go(-2) // 回退两页

console.log(history.length) // 打印挡墙历史记录的条数

案例2:

以下代码在服务器环境下

假设当前网址为http://localhost/index.html 使用pushState在历史记录里面添加一条历史记录

history.pushState({

page: ‘page1’

}, ‘page-1’, ‘./page.html’);

打开当前的地址,会发现页面里面显示的内容为index.html里面的内容但是地址变为http://localhost/page.html ,这是因为pushState是向历史记录添加一条记录但是不会刷新页面。点击回退按钮地址栏会变化为index.html

即: pushState方法不会触发页面刷新,只是导致history对象发生变化,地址栏的显示地址发生变化

案例3:

假设当前网址为http://localhost/index.html 使用replaceState在历史记录里面替换一条历史记录

history.pushState({

page: ‘page1’

}, ‘page-1’, ‘./page.html’);

打开当前的地址,会发现页面里面显示的内容为index.html里面的内容但是地址变为http://localhost/page.html ,点击回退按钮不会跳转到index.html页面,这是因为replaceState是在历史记录里面替换当前的记录,页面仍然不会刷新。

即: replaceState方法不会触发页面刷新,只是导致history对象发生变化,地址栏的显示地址发生变化

History 历史记录相关推荐

  1. syslog记录history历史记录

    工作中可能会有无聊的***在你服务器上转悠,***智商都不错,所有离开的时候就会删除history记录.怎么办才能记录下用户的历史记录呢? 原理:将history记录到syslog上面,并实时的传送到 ...

  2. 前端:JS/24/BOM和DOM简介,for...in循环遍历,window对象的属性和方法,延时器,定时器,screen屏幕对象,location地址栏对象,history历史记录对象

    BOM 和DOM简介 BOM ,Browser Object Model ,浏览器对象模型: BOM主要提供了访问和操作浏览器各组件的方式: 浏览器组件:window(浏览器容器), location ...

  3. history历史记录

    history方法与属性 history.pushState(对象,'标题','新增历史记录') 不刷新页面的情况下 添加历史记录 history.replaceState(对象,'标题','替换的历 ...

  4. History 历史记录加入时间等信息

    1.命令历史记录中加时间 默认情况下如下图所示,没有命令执行时间,不利于审计分析. 通过设置export HISTTIMEFORMAT='%F %T ',让历史记录中带上命令执行时间. 注意" ...

  5. linux设置history历史记录

    #说明 export HISTSIZE=1000 #设置历史记录显示1000行 export HISTTIMEFORMAT='%F %T ' #设置历史记录格式 999 2017-08-15 10:5 ...

  6. linux查看历史的所有命令,linux查询历史记录命令history的用法介绍

    一.什么是history在bash功能中,它能记忆使用过的命令,这个功能最大的好处就是可以查询曾经做过的举动! 从而可以知道你的运行步骤,那么就可以追踪你曾下达过的命令,以作为除错的工具! 二.His ...

  7. history的详解与使用

    通过Linux下的history命令我们可以查看用过的命令,即历史命令,今天我们就来了解一下吧! 一.什么是history 在bash功能中,它能记忆使用过的命令,这个功能最大的好处就是可以查询曾经做 ...

  8. C# 系统应用之清除Cookies、IE临时文件、历史记录 转载

    http://blog.csdn.net/Eastmount/article/details/18821221 本文主要是项目"个人电脑使用记录清除软件"系类文章中关于清除浏览器C ...

  9. C# 系统应用之清除Cookies、IE临时文件、历史记录

    本文主要是项目"个人电脑使用记录清除软件"系类文章中关于清除浏览器Cookies.IE临时文件.最近使用历史记录等内容.该篇文章的基本思想路线是首先了解上网历史记录的Windows ...

最新文章

  1. C++ VS2013环境编译使用sqlite数据库全过程
  2. c++成员函数的重载、覆盖、隐藏区别
  3. Android中RecyclerView嵌套RecyclerView或嵌套ListView
  4. Centos 6.5 yum源配置总结
  5. mysql 给表起别名_MySQL ------ 高级联结 (自联结,自然联结,外联结,带聚合函数的联结)(十五)...
  6. opencv利用直方图判断人脸光照质量
  7. Executor框架
  8. int string java 呼转
  9. Maven projects need to be imported反复弹出如何办?
  10. 【小项目】SSM 实现单表 CRUD
  11. ip地址与dns关系
  12. Git:撤销回滚操作
  13. WSL2之kali安装界面kex
  14. JAVA中整型常量的长度_以下的 能正确表示Java语言中的一个整型常量。_学小易找答案...
  15. 删除java速度变慢_Java正则表达式运行速度很慢
  16. DiffImg_PDF文件比较软件diffpdf及JPG校对软件Diffimg绿化版
  17. 微信步数修改.html,把微信步数修改到小
  18. 聚类算法评价指标python实现_聚类算法及其评估指标
  19. Java实现图片与Base64编码互转
  20. 《塞尔达传说:旷野之息》中设计元素的分析

热门文章

  1. 老男孩Python全栈开发(92天全)视频教程 自学笔记09
  2. 计算机中主板的作用是什么意思,电脑主板上的RAID功能是什么意思 ?
  3. 5. 阿里巴巴程序员开发手册黄山版
  4. 产品和商品的区别 sku spu的区别 什么事关键属性?什么事商品属性?
  5. 获得艾美奖的VFX Supe教你用Houdini粒子制作星云
  6. margin--负的margin的使用
  7. 计算机win10无法正常登录系统,win10系统无法登录战网的四种解决方法
  8. 机器人最新天赋符文天赋加点图_LOLS7机器人符文天赋加点_S7赛季机器人怎么出装_牛游戏网攻略...
  9. 记一次foxmailQQ邮箱创建失败到解决方法
  10. linux下crossover打开软件,如何借助CrossOver在Linux上运行Windows程序