Skip to content Skip to sidebar Skip to footer

Cannot Set Property 'innerHTML' Of Null While Still Using Window.onload To Delay

I am trying to write a script that changes the color of the text if it is an active screen (there are probably more efficient ways to do this). The error I am getting is Uncaught T

Solution 1:

onload expects function to be executed after page is completely loaded. Otherwise it'll treat it as simple assignment statement and execute. Use function as follow:

window.onload = function() {
    document.getElementById("header").innerHTML = cardDivPrint;
};

UPDATE

Instead of using main(), use DOMContentLoaded event.

document.addEventListener("DOMContentLoaded", function(event) {
    console.log("DOM fully loaded and parsed");

    var cardDiv = '<div id ="cardScreen"><a href="cardScreen.html">';
    var card = "Card";
    var closer = "</a></div>";

    var color = window.location.href.indexOf(Check) !== -1 ? "red" : "white";

    card.fontcolor = color("cardScreen");
    var cardDivPrint = cardDiv + card + closer;
    document.getElementById("header").innerHTML = cardDivPrint;
});

Solution 2:

Call the main function at the end of your body content

You are getting this error just because the element dose not exists at the time of its selection by JS DOM

<!DOCTYPE html>

<html>
<head>
    <title>
    </title>
<link href="../css/MasterSheet.css" rel="stylesheet" />
<script>
function main() {
    var cardDiv = '<div id ="cardScreen"><a href="cardScreen.html">';
    var card = "Card";
    var closer = "</a></div>";
    var color = (function color1(Check) {
        if (window.location.href.indexOf(Check))
            return "red";
        else
            return "white";
    });
    card.fontcolor = color("cardScreen");
    var cardDivPrint = cardDiv + card + closer;
    window.onload=document.getElementById("header").innerHTML= cardDivPrint;
}
</script>
</head>
<body>
    <div id="header">
    </div>
    <div>Content goes here.</div>
<script>main();</script>
</body>

</html>

Post a Comment for "Cannot Set Property 'innerHTML' Of Null While Still Using Window.onload To Delay"