aboutsummaryrefslogtreecommitdiffstats
path: root/browser/static/htmp.js
diff options
context:
space:
mode:
authorJan Tuomi <jan@jantuomi.fi>2025-05-02 16:37:29 +0300
committerJan Tuomi <jan@jantuomi.fi>2025-05-02 16:37:29 +0300
commitef72b74ec34e95a38890d542cda298dd6565d5ad (patch)
tree63fe96b24a8534e8dd2d88b1ca3d69b21c502d3e /browser/static/htmp.js
parentdaca0e6b68d32d885face00d68df5b5cb00e098b (diff)
Start replacing browser with a chat demo
Diffstat (limited to 'browser/static/htmp.js')
-rw-r--r--browser/static/htmp.js38
1 files changed, 0 insertions, 38 deletions
diff --git a/browser/static/htmp.js b/browser/static/htmp.js
deleted file mode 100644
index 27d963b..0000000
--- a/browser/static/htmp.js
+++ /dev/null
@@ -1,38 +0,0 @@
-const iframe = document.createElement("iframe");
-iframe.name = "htmp";
-iframe.hidden = true;
-iframe.addEventListener("load", function () {
- setTimeout(() => {
- const cd = this.contentDocument;
- const cw = this.contentWindow;
- // If the server responds with an entire HTML document, replace the current document with it.
- // To check whether the response is an entire page we check the presence of this very snippet.
- if (cd.querySelector("iframe[name='htmp']")) {
- document.documentElement.replaceWith(cd.documentElement);
- // If the server responds with a fragment, replace the target element with it.
- } else {
- document
- .querySelector(cw.location.hash || null)
- ?.replaceWith(...cd.body.childNodes);
- const url = new URL(cw.location.href);
- url.searchParams.delete("htmp");
- url.hash = "";
- history.replaceState({}, "", url.toString());
- }
- });
-});
-document.body.appendChild(iframe);
-
-document.querySelectorAll("form[htmp]").forEach(function (el) {
- const r = el.attributes.replace.value;
- const input = document.createElement("input");
- input.type = "hidden";
- input.name = "htmp";
- input.value = r;
- el.appendChild(input);
-
- const action = new URL(el.action);
- action.hash = r;
- el.action = action.toString();
- el.target = "htmp";
-});