forked from veltman/recs
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhashnav.min.js
More file actions
1 lines (1 loc) · 1.02 KB
/
hashnav.min.js
File metadata and controls
1 lines (1 loc) · 1.02 KB
1
function initHashNav(e){if(!e)return false;if(typeof e!=="function"){throw"hashnav.js requires a callback function that does something with the hash.";return false}if("onhashchange"in window){window.onhashchange=function(){checkHash(e)}}else{setInterval(function(){checkHash(e)},100)}checkHash(e)}function checkHash(e){if(window.location.hash.replace(/^#/i,"")!==currentHashNav){var t=window.location.hash.replace(/^#/i,"");var n=chopHash(t);e(n);currentHashNav=t}}function chopHash(e){var e={raw:e,base:e,parameters:null};if(e.raw.match(/[?]/)){var t=e.raw.split("?");e.base=e.raw.replace(/[?].*/,"");e.parameters=parametersFromString(e.raw.replace(/.*[?]/,""))}else if(e.raw.match(/[&]/)){e.parameters=parametersFromString(e.raw)}return e}function parametersFromString(e){if(!e.length)return null;var t=e.split("&");if(!t.length)return null;var n={};for(var r=0,i=t.length;r<i;r++){if(!t[r].length)continue;var s=t[r].split("=");if(!s[0].length)continue;n[s[0]]=s.length>1?s[1]:null}for(var o in n){return n}return null}var currentHashNav=null