X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/7db580850856d838d5d155ea5897d091d62e6ff6..e4a7c6505a32ed30e872bfab2b8cbf411e7a9b13:/keys.js diff --git a/keys.js b/keys.js index 993e8f4..e1b7038 100644 --- a/keys.js +++ b/keys.js @@ -1,4 +1,4 @@ -function setmode(classname) { +function setmode(classname, restore) { // set style for each #rows>li>ul>li to display:none unless it matches classname var showclass = classname ? '^mode '+classname+'(?!\\w)' : '^(?!mode)'; var rows = document.getElementById('rows').getElementsByTagName('TR'); @@ -11,10 +11,21 @@ function setmode(classname) { var h3s = document.getElementsByTagName('TH'); for (var i = 0; i < h3s.length; i++) { if (h3s[i].parentNode.style.display != 'block') continue; - document.getElementsByTagName('H2')[0].innerHTML = h3s[i].firstChild.data; + var header = h3s[i].firstChild.data; + document.getElementsByTagName('H2')[0].innerHTML = header; + if (restore) break; + history.pushState(null, header, classname ? '#'+classname : '#'); + break; } } +window.addEventListener('hashchange', function(e) { + setmode(location.hash.slice(1), true); +}); +if (location.hash) { + setmode(location.hash.slice(1), true); +} + var keyfocus = undefined; document.onkeypress = function(e) { var keylabels = document.getElementById('rows').getElementsByTagName('B');