aboutsummaryrefslogtreecommitdiffstats
path: root/static/js/fouc.js
blob: 013548634dc988c9ff30cb0c674230b52f8237c5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
"use strict";

function getScript(url, integrity, crossorigin){
    const 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) {
    const element = document.querySelector(selector);
    // console.log(element);
    element.className = myClass;
}

function removeClass(selector, myClass) {
    const element = document.querySelector(selector);
    const 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.13/js/all.js", // URL
            "sha384-d84LGg2pm9KhR4mCAs3N29GQ4OYNy+K+FBHX8WhimHpPm86c839++MDABegrZ3gn", // Integrity
            "anonymous" // Cross-origin
        );
    }
};