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.pswp.cn/news/258544.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258544.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258544.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

源碼安裝libjpeg-turbo1.2.1,無root權限

首先說明我的系統是redhat linux64位。沒有root權限。我們想安裝libjpeg-turbo. 下面介紹具體的安裝步驟。 本來想安裝最新的版本&#xff0c;但是最后失敗了&#xff0c;無奈安裝成1.2.1. 1. 下載源碼&#xff1a; https://zh.osdn.net/projects/sfnet_libjpeg-turbo/download…

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…

python滑動條來設置閾值houghcircle_OpenCV Python,為什么Hough Circle Transform找不到所有圓圈?...

我搜索了很長時間可能出錯但我并不真正了解參數和預處理的影響我無法發布圖片,但是在一張非常清晰的歐元照片上,該程序識別出一些圈子,而不是其他一些圈子,甚至可以像其他人一樣清楚.這是我的代碼&#xff1a;‘$’import cv2import numpy as npfilename rC:\Users\roseline\D…

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…

opencv中的橢圓擬合

首先貼一個最簡單的程序&#xff1a;訪問&#xff1a;https://blog.csdn.net/guduruyu/article/details/70069426 //創建一個用于繪制圖像的空白圖 cv::Mat image cv::Mat::ones(480, 640, CV_8UC3); //設置藍色背景 image.setTo(cv::Scalar(100, 0, 0)); //輸入擬合…

unix c 11

多線程(thread) 操作系統支持多進程&#xff0c;進程內部使用多線程。 進程是 重量級的&#xff0c;擁有自己 獨立的內存空間。 線程是 輕量級的&#xff0c;不需要擁有自己 獨立的內存空間&#xff0c;線程的內存空間&#xff1a;1 共享進程的內存空間 2 每個線程擁有…

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…

python類匯總_Python 類總結

Python可以繼承多個父類&#xff0c;多重繼承。類支持多個對象的產生&#xff0c;命名空間的繼承&#xff0c;運算符重載1)、類產生多個實例對象Python OOP模型中的兩種對象&#xff1a;類對象和實例對象。類對象提供默認的行為&#xff0c;是實例對象的工廠。實例對象是程序處…

matlab ,python,c++關于格式化輸出數字的表達

我們想要格式化輸出1,2,3&#xff0c;...為001,002,003 ... 那么在matlab,python,c該如何表達呢&#xff1f; matlab: >> filedirsprintf(%03i,10)filedir 010 or >> imagenamenum2str(10,%03d)imagename 010 python: index_str %03d % 10index_str Ou…

讀取Exchange的用戶未讀郵件數的幾種方法

【http://www.cnblogs.com/nbpowerboy/p/3539422.html】 可以使用ExchangeServiceBinding獲取郵件&#xff0c;他相當于outlook, 來獲取服務器的未接受的郵件. 至于 “該帳戶無權模擬所請求的用戶 ” ,是由于在exchange服務器上面沒有配置模擬賬戶. 需要在Exchange Management …

IOS第七天(2:UiTableView 加上數據分離)

****加上數據分離 #import "HMViewController.h" #import "HMStudent.h"interface HMViewController () <UITableViewDataSource> property (weak, nonatomic) IBOutlet UITableView *tableView;/** 數據列表 */ property (nonatomic, strong) NSArr…

觀點:Linux 上的殺毒軟件

剛剛進入二月&#xff0c;在360安全衛士 for Linux瞬間更名為360安全衛士國產系統專版。緊接著不久&#xff0c;Dr.Web 宣布發現一款可能源自 ChinaZ 的 Linux 系統的后門程序。加之又被朝內媒體炒作起來的 OpenSSL 基金會事宜&#xff0c;不由得思緒飄溢&#xff0c;再看看 Li…

使用opencv的LBF算法進行人臉關鍵點檢測

首先下載最新的opencv 和opencv_contrib, 然后按照在Windows下編譯擴展OpenCV 3.1.0 opencv_contrib的方法進行編譯&#xff0c;其中核心一點就是先編譯opencv&#xff0c;再在OPENCV_EXTRA_MODULES_PATH中加入opencv_contrib的modules的路徑。 編譯好了后就可以進行人臉關鍵…

scala case class 繼承_數字硬件系統設計之一:Scala快速入門(2)

原想簡單籠統介紹一下scala&#xff0c;后感覺這么做意思不大&#xff0c;網友看了和沒看一樣&#xff0c;還是應該稍微詳細具體一點&#xff0c;故而把系列編號由(上)(中)(下)&#xff0c;改為(上)(2)(3)(4)(5)....,(上)就是(1)吧&#xff0c;以下內容部分節選于我們即將出版的…

Ubuntu下安裝FTP服務及使用(VSFTPD詳細設置)(二)

vsftpd 作為一個主打安全的FTP服務器&#xff0c;有很多的選項設置。下面介紹了vsftpd的配置文件列表&#xff0c;而所有的配置都是基于vsftpd.conf這個配置文件 的。本文將提供完整的vsftpd.conf的中文說明。學習本文的內容將有助于你初步了解vsftpd的配置文件&#xff0c;但針…

crontab命令

前一天學習了 at 命令是針對僅運行一次的任務&#xff0c;循環運行的例行性計劃任務&#xff0c;linux系統則是由 cron (crond) 這個系統服務來控制的。Linux 系統上面原本就有非常多的計劃性工作&#xff0c;因此這個系統服務是默認啟動的。另外, 由于使用者自己也可以設置計劃…

調查顯示企業對 Linux 開發人才需求日漸增長

根據2014年Linux就業報告調查顯示&#xff0c;隨著Linux平臺增長&#xff0c;Linux平臺開發者就業需求較去年提升了7%&#xff0c;技術公司招聘Linux開發經歷的人才需求達到 77%&#xff0c;這是來自Dice和Linux基金會共同對就業市場對Linux人才的全景式調查&#xff0c;調查訪…

求圓和橢圓上任意角度的點的坐標

圓上任意角度的點的坐標 如上圖&#xff0c;給定圓心&#xff08;Cx,Cy&#xff09;,半徑為R&#xff0c; 求θ\thetaθ對應的點的坐標&#xff1f; 此處θ\thetaθ是相對于水平軸的角度。 顯然我們可以使用極坐標轉換來求&#xff1a; {pxCxRcos(θ)pyCyRsin(θ)\left\{\begi…

BZOJ ac100題存檔

不知不覺AC100題了&#xff0c;放眼望去好像都是水題。在這里就做一個存檔吧&#xff08;特別感謝各位大神尤其是云神http://hi.baidu.com/greencloud和麗潔姐http://wjmzbmr.com/的blog提供的題解&#xff09; 代碼什么的有時間在放。 1000: AB Problem 好吧&#xff0c;這也算…