html5 历史管理
1、onhashchange:改变hash值来进行历史管理。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input type="button" value="随机选择" id="btn" />
<div id="div1"></div>
</body>
</html>
<script>
window.onload = function(){
var oBtn = document.getElementById("btn");
var oDiv = document.getElementById("div1");
window.json = {};
oBtn.onclick = function(){
var key = Math.random();
var value = randomNum(35,7);
json[key] = value;
//oDiv.innerHTML = value;
window.location.hash = key;
} window.onhashchange = function(){
var hashValue = window.location.hash.substring(1);
if(!hashValue)return;
oDiv.innerHTML = json[hashValue];
}
} function randomNum(totlaNum,resultNum){
var totalArray = new Array();
var resultArray = new Array();
for(var i = 0 ;i < totlaNum;i++){
totalArray.push(i);
} for(var i = 1; i<= resultNum;i++){
resultArray.push(totalArray.splice(Math.floor(Math.random()*totalArray.length),1));
}
return resultArray;
}
</script>
2、history+pushState+ popstate事件:需要在服务器下运行。网址是虚假的,需要服务器指定对应页面,否则刷新找不到页面。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input type="button" value="随机选择" id="btn" />
<div id="div1"></div>
</body>
</html>
<script type="text/javascript">
window.onload = function(){
var oBtn = document.getElementById("btn");
var oDiv = document.getElementById("div1");
window.json = {};
oBtn.onclick = function(){
var value = randomNum(35,7);
//pushState接收三个参数 :数据 标题(都没实现) 地址(可选)
window.history.pushState(value,"");
oDiv.innerHTML = value;
} window.onpopstate = function(ev){
oDiv.innerHTML = ev.state;
} } function randomNum(totlaNum,resultNum){
var totalArray = new Array();
var resultArray = new Array();
for(var i = 0 ;i < totlaNum;i++){
totalArray.push(i);
} for(var i = 1; i<= resultNum;i++){
resultArray.push(totalArray.splice(Math.floor(Math.random()*totalArray.length),1));
}
return resultArray;
}
</script>
html5 历史管理的更多相关文章
- HTML5历史管理
边看视频边做的练习,随机显示数字,分别使用history和hash来实现历史管理 <!doctype html> <html> <head> <meta ch ...
- HTML5历史管理状态机制
前言:想要不刷新页面同时改变url 可以用HTML5 window对象的 hashChange 事件.同时介绍两个相关的api 和 1个事件. 两个API:1.history.pushState({n ...
- html5 历史管理onhashchange和state
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- html5(历史管理)
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/h ...
- HTML5自学笔记[ 8 ]历史管理
触发历史管理的三种方法: 跳转页面 改变hash值 pushState(在服务器环境下运行) 用hash值来触发历史管理: <!doctype html> <html lang=&q ...
- Clipboard Action for Mac(智能剪贴板历史管理器)破解版安装
1.软件简介 Clipboard Action 是 macOS 系统上一款智能剪贴板历史管理器,它允许剪贴板历史中的每一段内容执行操作.使用 AppleScript 或 Automator 工作 ...
- html5 - history 历史管理
参考文章: w3c : http://www.w3.org/html/ig/zh/wiki/HTML5/history 张鑫旭 : http://www.zhangxinxu.com/wo ...
- 关于HTML5中hash部分API在历史管理,选项卡自动跳转中的一点使用
在群里最近有人提到如何处理在页面跳转之后,想要直接定位到相对应的选项卡的选项上,比如首页有登录和注册两个按钮,而登录注册页面有一对选项卡分别对应的是登陆和注册,想要实现的功能是点击登陆去到登录页的登录 ...
- pjax 历史管理 jQuery.History.js
更新 http://www.bootcdn.cn/jquery.pjax/ 简介 pjax是一个jQuery插件,使用ajax和pushState技术提供快速的浏览体验与真正的永久链接.网页标题.以及 ...
随机推荐
- 使用CSS3实现表格隔行/隔列变色
<!DOCTYPE html><html><head> <meta charset="utf-8" /> <title> ...
- zabbix实现163邮件报警
Zabbix 邮件报警 电脑登录网易邮箱配置,把自己的授权码看一下,并写入配置文件 server端安装配置邮件服务器 [root@server ~]# yum -y install mailx dos ...
- js 字符串,数组扩展
console.log(Array.prototype.sort)//ƒ substring() { [native code] } console.log(String.prototype.subs ...
- 2 Button
// <summary> /// 设置透明按钮样式 /// </summary> private void SetBtnStyle(Button btn) { btn.Flat ...
- Oracle最大游标数控制
/************************************************************************ ********* Oracle最大游标数控制 ** ...
- sha2 替换sha1 时间表
由于sha1签名算法进入淘汰阶段,逐渐弃用中,sha1升级为sha2是大势所趋. 微软已经正式发布sha1弃用策略: http://blogs.technet.com/b/pki/archive/20 ...
- mongoDB全文索引
相关文章:php使用Coreseek实现全文索引 Introduction Mongo provides some functionality that is useful for text sear ...
- sencha touch 2制作滑动DataView(无缝list)
Ext.define('App.view.Sections', { extend: 'Ext.dataview.DataView', xtype: 'sectionslist', id: 'mainl ...
- jquery-radio 事件监听以及取值
$("input:radio[name='ssx']").change(function (){ alert( $(this).val()); alert($("inpu ...
- [转]C#——细说事务
转自:风尘浪子 - 博客园 引言 其实事务在数据层.服务层.业务逻辑层多处地方都会使用到,在本篇文章将会为大家一一细说. 其中前面四节是事务的基础,后面的三节是事务的重点,对事务有基础的朋友可以跳过前 ...