personal-site/public/htmz.dev.js
badbl0cks 2548a84e0b
All checks were successful
Build And Deploy / build-and-deploy (push) Successful in 5m19s
Add GoatCounter count.js component (as goat.js), MIT license logo
(mit.svg), and htmz assets (htmz.js and htmz.dev.js). Add LICENSE file
containing this project's MIT license and 3rd-party component licenses.
2026-03-07 22:38:34 -08:00

29 lines
1.5 KiB
JavaScript

function htmz(frame) {
// -------------------------------->1------------------------------------
// No history
// ----------------------------------------------------------------------
// This clears the iframe's history from the global history
// by removing the iframe from the DOM (but immediately adding it back
// for subsequent requests).
// ---------------------------------1<-----------------------------------
// -------------------------------->2-----------------------------------
// Repeat GETs
// ----------------------------------------------------------------------
// This clears the iframe URL for a fresh start on next load.
// ---------------------------------2<-----------------------------------
// ------------------------------->1&2-----------------------------------
if (frame.contentWindow.location.href === "about:blank") return;
// --------------------------------1&2<----------------------------------
setTimeout(() => {
document
.querySelector(frame.contentWindow.location.hash || null)
?.replaceWith(...frame.contentDocument.body.childNodes);
// ---------------------------------2<-----------------------------------
frame.contentWindow.location.replace("about:blank");
// -------------------------------->2------------------------------------
// ---------------------------------1<-----------------------------------
frame.remove();
document.body.appendChild(frame);
// -------------------------------->1------------------------------------
});
}