html5 - history 历史管理

参考文章:

   w3c     :  http://www.w3.org/html/ig/zh/wiki/HTML5/history

 张鑫旭  : http://www.zhangxinxu.com/wordpress/2013/06/html5-history-api-pushstate-replacestate-ajax/

   zawa   :   http://zawa.iteye.com/blog/1271031 

 

Demo : Demo 

截图:

代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>选项卡</title>
<style>
body {background: #444; }
p{margin:0;}
.tab_bor{width:500px;margin:20px auto;overflow:}
.tab_bor ul{padding:10px 10px 0 10px;margin:0; display:inline-block;}
.tab_bor li{border:1px solid #fff;border-bottom:none;background:#1b5775;color:#fff;font-weight:bold;padding:0 10px; line-height:32px; font-size:14px;float:left;margin:0 2px;list-style:none; cursor:pointer;border-bottom:none;}
.tab_bor .active{ border:1px solid #fff;color:#fff; position:relative;top:1px;border-bottom:none;background:#187cc2;}
.tab_bor p{padding:10px;color:#fff;font-size:12px;border:1px solid #fff; display:none;background:#383838;height:100px;}
.tab_bor .show{display:block;background:#187cc2;}
</style>
<script>
window.onload = function(){var oDiv = document.getElementById('div1'),aLis = oDiv.getElementsByTagName('li'),aPs  = oDiv.getElementsByTagName('p');for( var i=0,len = aLis.length;i<len;i++ ){aLis[i].index = i;aLis[i].onclick = function(){var index = this.index ;var name = this.dataset.name; var title = '选项卡'+(index+1);document.title = title;history.pushState(index,title, '#'+name);for( var i=0,len = aLis.length;i<len;i++ ){		aLis[i].className = '';aPs[i].className = '';}this.className = 'active';aPs[ index ].className = 'show';}} if( history.pushState ){window.onpopstate = function( ev ){var ev = window.event || ev;var state = ev.state || 0;for( var j=0,len = aLis.length;j<len;j++ ){		aLis[j].className = '';aPs[j].className = '';}aLis[state].className = 'active';aPs[state].className = 'show';}}window.onhashchange = function(){setLocHistory();}setLocHistory();function setLocHistory(){var locName = location.href.split("#")[1] || 'tab1';for( var i=0,len = aLis.length;i<len;i++ ){		if( locName == aLis[i].dataset.name ){for( var j=0,len = aLis.length;j<len;j++ ){		aLis[j].className = '';aPs[j].className = '';}aLis[i].className = 'active';aPs[i].className = 'show';}}}}
</script></head>
<body><div class="tab_bor" id="div1"><ul><li class="active" data-name="tab1">标签一</li><li data-name="tab2">标签二</li><li data-name="tab3">标签三</li><li data-name="tab4">标签四</li></ul><p class="show"  data-name="tab1">内容一</p><p  data-name="tab2">内容二</p><p  data-name="tab3">内容三</p><p data-name="tab4">内容四</p></div>
</body>
</html>

 

后记:

这“history.pushState” 必须在服务端才能生肖,所以这页面在服务端打开。

大致讲讲api 前边的文章已经很详尽了:

history.pushState 三个参数  第一个参数为存储的数据,第二值是设置document.title的值(不过这个方法现在还没有完全实现),第三个值是url路径(这个需要和后台配合。。。。其实我也不是很懂。。。。);

window.onpopstate 相当于取值 ev.state 就是history.pushState存储的数据值;

window.onhashchange 只要location有变化就执行方法的事件;

他的应用当然有些说是做这个 翻页的记录什么的 其实也有可以做这些一站式开发的打开判断,我这demo就是模拟一站式开发的意思。

 

转载于:https://www.cnblogs.com/auok/p/4690134.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258544.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android开发学习---使用Intelij idea 13.1 进行android 开发

Android开发学习---使用Intelij idea 13.1 进行android 开发 原文:Android开发学习---使用Intelij idea 13.1 进行android 开发1.为什么放弃eclipse?太卡!! 实在受不了eclipse的卡了,运行WEB项目还好,但android开发实在太慢,太慢!经常卡死,CPU经常被占满! 看网上很多人都说比I…

Logcat打印调试信息

Android Logcat调试中的V、D、I、W、E的分别代表什么&#xff1f; Log.v -- 黑色 -- verbose infoLog.d -- 蓝色 -- debug infoLog.i -- 绿色 -- infoLog.w -- 橙色 -- warnLog.e -- 红色 -- error info//Log.ASSERT -- 断言 //Log.wtf() (1、Log.v 的调试颜色为黑色的&#xf…

C# .net core 使用自定义的WebProxy

为什么80%的码农都做不了架构师&#xff1f;>>> 因为.net core 的System.Net 中没有提供WebProxy这个方法,所以可以根据需求实现一个. public class CoreWebProxy : IWebProxy{public readonly Uri Uri;private readonly bool bypass;public CoreWebProxy(Uri uri,…

2015年08月

2015年07月 - 2015年09月 ● 一般而言。。。 一般而言&#xff0c;牙周病轻者有口臭、牙龈红肿疼痛、刷牙流血等症状&#xff0c;严重时会造成牙龈萎缩、牙齿敏感、牙齿摇动等情况。口腔没有在饮食后30分钟清洁就会逐渐转化为酸性环境&#xff08;PH值约5.5&#xff09;&#x…

scala case class 继承_数字硬件系统设计之一:Scala快速入门(2)

原想简单笼统介绍一下scala&#xff0c;后感觉这么做意思不大&#xff0c;网友看了和没看一样&#xff0c;还是应该稍微详细具体一点&#xff0c;故而把系列编号由(上)(中)(下)&#xff0c;改为(上)(2)(3)(4)(5)....,(上)就是(1)吧&#xff0c;以下内容部分节选于我们即将出版的…

crontab命令

前一天学习了 at 命令是针对仅运行一次的任务&#xff0c;循环运行的例行性计划任务&#xff0c;linux系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作&#xff0c;因此这个系统服务是默认启动的。另外, 由于使用者自己也可以设置计划…

求圆和椭圆上任意角度的点的坐标

圆上任意角度的点的坐标 如上图&#xff0c;给定圆心&#xff08;Cx,Cy&#xff09;,半径为R&#xff0c; 求θ\thetaθ对应的点的坐标&#xff1f; 此处θ\thetaθ是相对于水平轴的角度。 显然我们可以使用极坐标转换来求&#xff1a; {pxCxRcos(θ)pyCyRsin(θ)\left\{\begi…

smtp中mailfrom是必须的吗_你是住在高层建筑中吗?这是你必须了解的

01PARTONE消防电梯和普通客梯的作用及特点1.消防电梯是在建筑物发生火灾时供消防人员进行灭火与救援使用且具有一定功能的电梯。因此&#xff0c;消防电梯具有较高的防火要求&#xff0c;其防火设计十分重要。2.普通电梯均不具备消防功能&#xff0c;发生火灾时禁止人们搭乘电梯…

c++ 函数的值传递,引用传递 和 引用返回的探索

2019独角兽企业重金招聘Python工程师标准>>> 前言 C的函数参数和返回分为按值传递和按引用传递,应用到类上面,会涉及到类的 赋值操作 复制函数 构造函数 析构函数 虽然java开发了两年,但对我而言c我还只是一个初学者.c还有很多陌生的特性需要自己亲自探索.这里用实际…

GCD的部分总结

GCD是基于C语言的底层API,用Block定义任务用起来非常灵活便捷. GCD的基本思想是就将操作放在队列中去执行 (1)操作使用Blocks定义(2)队列负责调度任务执行所在的线程以及具体的执行时间(3)队列的特点是先进先出(FIFO)的&#xff0c;新添加至对列的操作都会排在队尾关于多线程的…

多线程编程2-NSOperation

本文目录 前言一、NSInvocationOperation二、NSBlockOperation三、NSOperation的其他用法四、自定义NSOperation回到顶部前言 1.上一讲简单介绍了NSThread的使用&#xff0c;虽然也可以实现多线程编程&#xff0c;但是需要我们去管理线程的生命周期&#xff0c;还要考虑线程同步…

闪回表操作语法+使用闪回删除

闪回表操作语法 flashback table 【 schema.】 table_name to {【before drop 【rename to new_table_name】 】|【scn | timestamp 】】 expr 【enable | disable 】 triggers}: 参数说明&#xff1a; schema&#xff1a;用户模式 before drop&#xff1a;表示恢复到删除…

欧拉函数 - HDU1286

欧拉函数的作用&#xff1a; 有[1,2.....n]这样一个集合&#xff0c;f(n)这个集合中与n互质的元素的个数。欧拉函数描述了一些列与这个f(n)有关的一些性质&#xff0c;如下&#xff1a; 1、令p为一个素数&#xff0c;n p ^ k&#xff0c;则 f(n) p ^ k - p ^ (k-1) 2、令m&…

其中一个页签慢_渭南提升一个大专学历的有效方法

渭南提升一个大专学历的有效方法&#xff0c;宏德教育&#xff0c;目前已形成以高等学历教育为特色王牌&#xff0c;职称考评、企业内训为辅助的强力优势品牌。渭南提升一个大专学历的有效方法&#xff0c; 获得发明专利或实用新型专利&#xff0c;且已实施取得效益。出版本专业…

《收集苹果》 动态规划入门

问题描写叙述 平面上有N*M个格子&#xff0c;每一个格子中放着一定数量的苹果。你从左上角的格子開始&#xff0c;每一步仅仅能向下走或是向右走&#xff0c;每次走到一个格子上就把格子里的苹果收集起来&#xff0c;这样下去&#xff0c;你最多能收集到多少个苹果。 输入&…

Xamarin XAML语言教程通过ProgressTo方法对进度条设置

2019独角兽企业重金招聘Python工程师标准>>> Xamarin XAML语言教程通过ProgressTo方法对进度条设置 在ProgressBar中定义了一个ProgressTo方法&#xff0c;此方法也可以用来对进度条当前的进行进行设置&#xff0c;ProgressTo与Progress属性的不同之处在于ProgressT…

h5新特性

 CSDN博客 Gane_ChengHTML5新特性浅谈 发表于2016/10/17 21:25:58 7809人阅读 分类&#xff1a; 前端 转载请注明出处&#xff1a; http://blog.csdn.net/gane_cheng/article/details/52819118 http://www.ganecheng.tech/blog/52819118.html &#xff08;浏览效果更好…

mysql日期截取年月_摄影大赛丨“我遇见最美的光”第五届全国医务人员摄影大展 截稿日期2020年8月15日...

截稿日期2020年8月15日《“我遇见最美的光”第五届全国医务人员摄影大展》欣赏过山川壮丽&#xff0c;瞻仰过造化旖旎&#xff0c;敬重于生命伟大&#xff0c;感动于英雄凯旋……由《大众摄影》主办&#xff0c;正大天晴药业集团股份有限公司、《中国卫生影像》杂志协办的“我遇…

Pytorch的C++接口实践

Pytorch1.1版本已经提供了相对稳定的c接口&#xff0c;网上也有了众多的资料供大家参考&#xff0c;进行c的接口的初步尝试。 可以按照对应的选项下载&#xff0c;下面我们要说的是&#xff1a; 如何利用已经编译好的官方libtorch库和其他的opencv库等联合编写应用&#xff1f…

HttpClient v4.5 简单抓取主页数据

由于工作原因&#xff0c;需要每隔半小时刷新一些网页&#xff0c;并查看上面的数据是否有更新。这件事能否自动化进行呢&#xff1f;查找了下Java相关的资料&#xff0c;蹦出一个关键词&#xff1a;HttpClient。 HttpClient是常用Http客户端库&#xff0c;相关的资料也不少&am…