From 872e044d6cc1a116208f97a61ca0e52c92cc3032 Mon Sep 17 00:00:00 2001 From: Ted Unangst Date: Mon, 16 Sep 2019 15:46:33 -0400 Subject: [PATCH] experiment with history.pushState --- views/honkpage.js | 58 +++++++++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 24 deletions(-) diff --git a/views/honkpage.js b/views/honkpage.js index 0e2ee9a..ca183cc 100644 --- a/views/honkpage.js +++ b/views/honkpage.js @@ -92,34 +92,44 @@ function refreshhonks(btn) { btn.parentElement.children[1].innerHTML = " " + lenhonks + " new" }) } +function statechanger(evt) { + var name = evt.state + if (!name) { + return + } + switchtopage(name) +} +function switchtopage(name, evt) { + var honksonpage = document.getElementById("honksonpage") + var holder = honksonpage.children[0] + holder.remove() + if (thispagename != "convoy") { + honksforpage[thispagename] = holder + } + thispagename = name + holder = honksforpage[name] + if (holder) { + honksonpage.prepend(holder) + } else { + honksonpage.prepend(document.createElement("div")) + var args = { "page" : name } + if (name == "convoy") { + var c = evt.srcElement.text + args["c"] = c + } else { + args["topxid"] = topxid[name] + } + get("/hydra?" + encode(args), fillinhonks) + } +} function pageswitcher(name) { return function(evt) { if (name == thispagename) { return false } - var honksonpage = document.getElementById("honksonpage") - var holder = honksonpage.children[0] - holder.remove() - if (thispagename != "convoy") { - honksforpage[thispagename] = holder - } - - thispagename = name - holder = honksforpage[name] - if (holder) { - honksonpage.prepend(holder) - } else { - honksonpage.prepend(document.createElement("div")) - var args = { "page" : name } - if (name == "convoy") { - console.log("convoy page") - var c = evt.srcElement.text - args["c"] = c - } else { - args["topxid"] = topxid[name] - } - get("/hydra?" + encode(args), fillinhonks) - } + switchtopage(name, evt) + var url = evt.srcElement.href + history.pushState(name, "some title", url) return false } } @@ -130,10 +140,10 @@ function relinkconvoys() { } } (function() { - console.log("ok") var el = document.getElementById("homelink") el.onclick = pageswitcher("home") var el = document.getElementById("atmelink") el.onclick = pageswitcher("atme") relinkconvoys() + window.onpopstate = statechanger })();