From dd6835dfd6a7f8fb6baea76a0cddd8289e43130f Mon Sep 17 00:00:00 2001 From: Leon Sandøy Date: Tue, 10 Apr 2018 19:39:29 +0200 Subject: Flash of Unstyled Content fix --- static/js/fouc.js | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 static/js/fouc.js (limited to 'static/js') diff --git a/static/js/fouc.js b/static/js/fouc.js new file mode 100644 index 00000000..190e8d37 --- /dev/null +++ b/static/js/fouc.js @@ -0,0 +1,36 @@ +function getScript(url, integrity, crossorigin){ + var script = document.createElement("script") + script.type = "text/javascript"; + script.src = url; + script.defer = true; + script.integrity = integrity; + script.crossOrigin = crossorigin; + document.getElementsByTagName("head")[0].appendChild(script); +} + +function setClass(selector, myClass) { + element = document.querySelector(selector); + console.log(element) + element.className = myClass; +} + +function removeClass(selector, myClass) { + element = document.querySelector(selector); + var reg = new RegExp('(^| )'+myClass+'($| )','g'); + element.className = element.className.replace(reg,' '); +} + +// hide the html when the page loads, but only if js is turned on. +setClass('html', 'prevent_fouc'); + +// when the DOM has finished loading, unhide the html +document.onreadystatechange = function () { + if (document.readyState == "interactive") { + removeClass('html', 'prevent_fouc'); + getScript( + 'https://pro.fontawesome.com/releases/v5.0.9/js/all.js', + 'sha384-DtPgXIYsUR6lLmJK14ZNUi11aAoezQtw4ut26Zwy9/6QXHH8W3+gjrRDT+lHiiW4', + 'anonymous' + ) + } +} \ No newline at end of file -- cgit v1.2.3