error: Uncaught TypeError: Cannot set property 'innerHTML' of null

56,836

Wait for the window to load:

window.onload = function()
{
    //yourJSCodeHERE
}

or move your JS after the </body> tag.

Share:
56,836
James Dorfman
Author by

James Dorfman

Updated on July 14, 2020

Comments

  • James Dorfman
    James Dorfman almost 4 years

    I keep on getting the error "Uncaught TypeError: Cannot set property 'innerHTML' of null" when I try to run this program in chrome. I do not now what I am doing wrong, and and any help would be appreciated.

    <!DOCTYPE html>
    <html>
    <head>
    </head>
    <script>
        var x = "hey";
        var counter = 1;
        var button = document.getElementById("button");
        var div = document.getElementById("box");
        var text = document.getElementById("text");
        var sound = document.getElementById("sound");
        var array=[ "thanks for clicking", "keep on clicking", "click one more time", "why do you keep on clicking me?", "stop clicking me!"];
    function thing(file){
        var y = array[Math.floor(Math.random() * array.length)];
            if (x == y){
                while (y == x){
                    var y = array[Math.floor(Math.random() * array.length)];
            }   
            }
        form1.text.value=y;
    
        x = y;
    sound.innerHTML = "<embed src=\""+file+"\"hidden=\"true\"autostart=\"true\" loop=\"false\"/>";
    
    }
    </script>
    </head>
    <body>
    <form name="form1">
    <input type="button" id="button" value="click" onClick="thing('sound.mp3')" />
        <input type="text" id="text" value="hey" />
    </form>
    <div id="sound">
    <p>
    </p>
    </div>
    </body>
    </html>