forked from devote/HTML5-History-API
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhistory.ielte7.min.js
36 lines (36 loc) · 10.5 KB
/
history.ielte7.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/*!
* History API JavaScript Library v4.2.4
*
* Support: IE6+, FF3+, Opera 9+, Safari, Chrome and other
*
* Copyright 2011-2015, Dmitrii Pakhtinov ( spb.piksel@gmail.com )
*
* http://spb-piksel.ru/
*
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
* Update: 2015-10-16 22:16
*/
(function(p){if("function"===typeof define&&define.amd){var w="[history"+(new Date).getTime()+"]",l=requirejs.onError;p.toString=function(){return w};requirejs.onError=function(p){-1===p.message.indexOf(w)&&l.call(requirejs,p)};define([],p)}if("object"===typeof exports&&"undefined"!==typeof module)module.exports=p();else return p()})(function(){var i=!0,k=null,o=!1;function p(a,b){var c=d.history!==q;c&&(d.history=q);a.apply(q,b);c&&(d.history=m)}function w(){}function l(a,b,c){if(a!=k&&""!==a&&!b){var b=l(),e=g.getElementsByTagName("base")[0];
!c&&e&&e.getAttribute("href")&&(e.href=e.href,b=l(e.href,k,i));c=b.e;e=b.h;a=""+a;a=/^(?:\w+\:)?\/\//.test(a)?0===a.indexOf("/")?e+a:a:e+"//"+b.g+(0===a.indexOf("/")?a:0===a.indexOf("?")?c+a:0===a.indexOf("#")?c+b.f+a:c.replace(/[^\/]+$/g,"")+a)}else if(a=b?a:f.href,!j||c)a=a.replace(/^[^#]*/,"")||"#",a=f.protocol.replace(/:.*$|$/,":")+"//"+f.host+h.basepath+a.replace(RegExp("^#[/]?(?:"+h.type+")?"),"");R.href=a;var a=/(?:(\w+\:))?(?:\/\/(?:[^@]*@)?([^\/:\?#]+)(?::([0-9]+))?)?([^\?#]*)(?:(\?[^#]+)|\?)?(?:(#.*))?/.exec(R.href),
b=a[2]+(a[3]?":"+a[3]:""),c=a[4]||"/",e=a[5]||"",d="#"===a[6]?"":a[6]||"",S=c+e+d,x=c.replace(RegExp("^"+h.basepath,"i"),h.type)+e;return{a:a[1]+"//"+b+S,h:a[1],g:b,i:a[2],k:a[3]||"",e:c,f:e,b:d,c:S,j:x,d:x+d}}function ba(){var a;try{a=d.sessionStorage,a.setItem(F+"t","1"),a.removeItem(F+"t")}catch(b){a={getItem:function(a){a=g.cookie.split(a+"=");return 1<a.length&&a.pop().split(";").shift()||"null"},setItem:function(a){var b={};if(b[f.href]=m.state)g.cookie=a+"="+t.stringify(b)}}}try{r=t.parse(a.getItem(F))||
{}}catch(c){r={}}v(y+"unload",function(){a.setItem(F,t.stringify(r))},o)}function z(a,b,c,e){var f=0;c||(c={set:w},f=1);var g=!c.set,x=!c.get,K={configurable:i,set:function(){g=1},get:function(){x=1}};try{D(a,b,K),a[b]=a[b],D(a,b,c)}catch(ia){}if(!g||!x)if(a.__defineGetter__&&(a.__defineGetter__(b,K.get),a.__defineSetter__(b,K.set),a[b]=a[b],c.get&&a.__defineGetter__(b,c.get),c.set&&a.__defineSetter__(b,c.set)),!g||!x){if(f)return o;if(a===d){try{var ca=a[b];a[b]=k}catch(l){}if("execScript"in d)d.execScript("Public "+
b,"VBScript"),d.execScript("var "+b+";","JavaScript");else try{D(a,b,{value:w})}catch(m){"onpopstate"===b&&(v("popstate",c=function(){L("popstate",c,o);var b=a.onpopstate;a.onpopstate=k;setTimeout(function(){a.onpopstate=b},1)},o),T=0)}a[b]=ca}else try{try{var h=G.create(a);D(G.getPrototypeOf(h)===a?h:a,b,c);for(var j in a)"function"===typeof a[j]&&(h[j]=a[j].bind(a));try{e.call(h,h,a)}catch(n){}a=h}catch(p){D(a.constructor.prototype,b,c)}}catch(q){return o}}return a}function da(a,b,c){c=c||{};a=
a===M?f:a;c.set=c.set||function(c){a[b]=c};c.get=c.get||function(){return a[b]};return c}function H(a,b){var c=(""+("string"===typeof a?a:a.type)).replace(/^on/,""),e=A[c];if(e){b="string"===typeof a?b:a;if(b.target==k)for(var f=["target","currentTarget","srcElement","type"];a=f.pop();)b=z(b,a,{get:"type"===a?function(){return c}:function(){return d}});T&&(("popstate"===c?d.onpopstate:d.onhashchange)||w).call(d,b);for(var f=0,g=e.length;f<g;f++)e[f].call(d,b);return i}return ea(a,b)}function U(){var a=
g.createEvent?g.createEvent("Event"):g.createEventObject();a.initEvent?a.initEvent("popstate",o,o):a.type="popstate";a.state=m.state;H(a)}function u(a,b,c,d){j?B=f.href:(0===n&&(n=2),b=l(b,2===n&&-1!==(""+b).indexOf("#")),b.c!==l().c&&(B=d,c?f.replace("#"+b.d):f.hash=b.d));!I&&a&&(r[f.href]=a);E=o}function N(a){var b=B;B=f.href;if(b){V!==f.href&&U();var a=a||d.event,b=l(b,i),c=l();a.oldURL||(a.oldURL=b.a,a.newURL=c.a);b.b!==c.b&&H(a)}}function W(a){setTimeout(function(){v("popstate",function(a){V=
f.href;I||(a=z(a,"state",{get:function(){return m.state}}));H(a)},o)},0);!j&&a!==i&&"location"in m&&(X(s.hash),E&&(E=o,U()))}function fa(a){var a=a||d.event,b;a:{for(b=a.target||a.srcElement;b;){if("A"===b.nodeName)break a;b=b.parentNode}b=void 0}var c="defaultPrevented"in a?a.defaultPrevented:a.returnValue===o;b&&"A"===b.nodeName&&!c&&(c=l(),b=l(b.getAttribute("href",2)),c.a.split("#").shift()===b.a.split("#").shift()&&b.b&&(c.b!==b.b&&(s.hash=b.b),X(b.b),a.preventDefault?a.preventDefault():a.returnValue=
o))}function X(a){var b=g.getElementById(a=(a||"").replace(/^#/,""));b&&b.id===a&&"A"===b.nodeName&&(a=b.getBoundingClientRect(),d.scrollTo(J.scrollLeft||0,a.top+(J.scrollTop||0)-(J.clientTop||0)))}function ga(){function a(a){var b=[],e="VBHistoryClass"+(new Date).getTime()+c++,f=["Class "+e],g;for(g in a)if(a.hasOwnProperty(g)){var h=a[g];h&&(h.get||h.set)?(h.get&&f.push("Public "+("_"===g?"Default ":"")+"Property Get ["+g+"]","Call VBCVal([(accessors)].["+g+"].get.call(me),["+g+"])","End Property"),
h.set&&f.push("Public Property Let ["+g+"](val)",h="Call [(accessors)].["+g+"].set.call(me,val)\nEnd Property","Public Property Set ["+g+"](val)",h)):(b.push(g),f.push("Public ["+g+"]"))}f.push("Private [(accessors)]","Private Sub Class_Initialize()","Set [(accessors)]="+e+"FactoryJS()","End Sub","End Class","Function "+e+"Factory()","Set "+e+"Factory=New "+e,"End Function");d.execScript(f.join("\n"),"VBScript");d[e+"FactoryJS"]=function(){return a};e=d[e+"Factory"]();for(f=0;f<b.length;f++)e[b[f]]=
a[b[f]];return e}function b(a){var b=/[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,c={"\u0008":"\\b","\t":"\\t","\n":"\\n","\u000c":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};return b.test(a)?'"'+a.replace(b,function(a){return a in c?c[a]:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}var c=d.execScript&&(d.execScript("var documentMsie/*@cc_on =1@*/;","JavaScript"),d.documentMsie);if(c&&!(g.documentMode&&
7<g.documentMode)){var e=z,h=l().a,j=g.createElement("iframe");j.src="javascript:true;";j=J.firstChild.appendChild(j).contentWindow;d.execScript("Public history\nFunction VBCVal(o,r) If IsObject(o) Then Set r=o Else r=o End If End Function","VBScript");s={_:{get:M.toString}};m={back:q.back,forward:q.forward,go:q.go,emulate:k,_:{get:function(){return"[object History]"}}};t={parse:function(a){try{return(new Function("","return "+a))()}catch(b){return k}},stringify:function(a){var c=(typeof a).charCodeAt(2);
if(114===c)a=b(a);else if(109===c)a=isFinite(a)?""+a:"null";else if(111===c||108===c)a=""+a;else if(106===c)if(a){var e=(c="[object Array]"===G.prototype.toString.call(a))?"[":"{";if(c)for(var d=0;d<a.length;d++)e+=(0==d?"":",")+t.stringify(a[d]);else for(d in a)a.hasOwnProperty(d)&&(e+=(1==e.length?"":",")+b(d)+":"+t.stringify(a[d]));a=e+(c?"]":"}")}else a="null";else a="void 0";return a}};u=function(a,b,c,e,d){var g=j.document;0===n&&(n=2);b=l(b,2===n&&-1!==(""+b).indexOf("#"));E=o;if(b.c===l().c&&
!d)a&&(r[f.href]=a);else{B=e;if(c)j.lfirst?(history.back(),u(a,b.a,0,e,1)):f.replace("#"+b.d);else if(b.a!=h||d)j.lfirst?d&&(d=0,a=r[f.href]):(j.lfirst=1,u(a,h,0,e,1)),g.open(),g.write('<script>lfirst=1;parent.location.hash="'+b.d.replace(/"/g,'\\"')+'";<\/script>'),g.close();!d&&a&&(r[f.href]=a)}};z=function(b,c,f,g){e.apply(this,arguments)||(b===s?s[c]=f:b===m?(m[c]=f,"state"===c&&(s=a(s),d.history=m=a(m),d.execScript("var history = window.history;","JavaScript"))):b[c]=f.get&&f.get());return b};
setInterval(function(){var a=l().a;if(a!=h){var b=g.createEventObject();b.oldURL=h;b.newURL=h=a;b.type="hashchange";N(b)}},100);d.JSON=t}}var d=("object"===typeof window?window:this)||{};if(!d.history||"emulate"in d.history)return d.history;var g=d.document,J=g.documentElement,G=d.Object,t=d.JSON,f=d.location,q=d.history,m=q,O=q.pushState,Y=q.replaceState,j=!!O,I="state"in q,D=G.defineProperty,s=z({},"t")?{}:g.createElement("a"),y="",P=d.addEventListener?"addEventListener":(y="on")&&"attachEvent",
Z=d.removeEventListener?"removeEventListener":"detachEvent",$=d.dispatchEvent?"dispatchEvent":"fireEvent",v=d[P],L=d[Z],ea=d[$],h={basepath:"/",redirect:0,type:"/",init:0},F="__historyAPI__",R=g.createElement("a"),B=f.href,V="",T=1,E=o,n=0,r={},A={},C=g.title,Q,ha={onhashchange:k,onpopstate:k},aa={setup:function(a,b,c){h.basepath=(""+(a==k?h.basepath:a)).replace(/(?:^|\/)[^\/]*$/,"/");h.type=b==k?h.type:b;h.redirect=c==k?h.redirect:!!c},redirect:function(a,b){m.setup(b,a);b=h.basepath;if(d.top==d.self){var c=
l(k,o,i).c,e=f.pathname+f.search;j?(e=e.replace(/([^\/])$/,"$1/"),c!=b&&RegExp("^"+b+"$","i").test(e)&&f.replace(c)):e!=b&&(e=e.replace(/([^\/])\?/,"$1/?"),RegExp("^"+b,"i").test(e)&&f.replace(b+"#"+e.replace(RegExp("^"+b,"i"),h.type)+f.hash))}},pushState:function(a,b,c){var d=g.title;C!=k&&(g.title=C);O&&p(O,arguments);u(a,c);g.title=d;C=b},replaceState:function(a,b,c){var d=g.title;C!=k&&(g.title=C);delete r[f.href];Y&&p(Y,arguments);u(a,c,i);g.title=d;C=b},location:{set:function(a){0===n&&(n=1);
d.location=a},get:function(){0===n&&(n=1);return s}},state:{get:function(){return r[f.href]||k}}},M={assign:function(a){!j&&0===(""+a).indexOf("#")?u(k,a):f.assign(a)},reload:function(a){f.reload(a)},replace:function(a){!j&&0===(""+a).indexOf("#")?u(k,a,i):f.replace(a)},toString:function(){return this.href},origin:{get:function(){return void 0!==Q?Q:!f.origin?f.protocol+"//"+f.hostname+(f.port?":"+f.port:""):f.origin},set:function(a){Q=a}},href:j?k:{get:function(){return l().a}},protocol:k,host:k,
hostname:k,port:k,pathname:j?k:{get:function(){return l().e}},search:j?k:{get:function(){return l().f}},hash:j?k:{set:function(a){u(k,(""+a).replace(/^(#|)/,"#"),o,B)},get:function(){return l().b}}};if(function(){var a=g.getElementsByTagName("script"),a=(a[a.length-1]||{}).src||"";(-1!==a.indexOf("?")?a.split("?").pop():"").replace(/(\w+)(?:=([^&]*))?/g,function(a,b,c){h[b]=(c||"").replace(/^(0|false)$/,"")});ga();v(y+"hashchange",N,o);var b=[M,s,ha,d,aa,m];I&&delete aa.state;for(var c=0;c<b.length;c+=
2)for(var e in b[c])if(b[c].hasOwnProperty(e))if("object"!==typeof b[c][e])b[c+1][e]=b[c][e];else{a=da(b[c],e,b[c][e]);if(!z(b[c+1],e,a,function(a,e){if(e===m)d.history=m=b[c+1]=a}))return L(y+"hashchange",N,o),o;b[c+1]===d&&(A[e]=A[e.substr(2)]=[])}m.setup();h.redirect&&m.redirect();h.init&&(n=1);!I&&t&&ba();if(!j)g[P](y+"click",fa,o);"complete"===g.readyState?W(i):(!j&&l().c!==h.basepath&&(E=i),v(y+"load",W,o));return i}())return m.emulate=!j,d[P]=function(a,b,c){a in A?A[a].push(b):3<arguments.length?
v(a,b,c,arguments[3]):v(a,b,c)},d[Z]=function(a,b,c){var d=A[a];if(d)for(a=d.length;a--;){if(d[a]===b){d.splice(a,1);break}}else L(a,b,c)},d[$]=H,m});