"Unable to get value of the property 'appendChild': object is null or undefined" while appending script to IE

user784756 picture user784756 · Aug 24, 2011 · Viewed 35.9k times · Source

When I try to append the following script to IE, I get this error:

"Error: Unable to get value of the property 'appendChild': object is null or undefined"

It works fine in Chrome, but when testing on IE9 this occurs. Can anyone tell me what the error is?

  // create script in document
    var fbScript = document.createElement("script");
    fbScript.type = "text/javascript";

    // make script source the facebook plugin
    fbScript.src = "http://connect.facebook.net/en_US/all.js#xfbml=1";



    // append script to appropriate tab
    document.getElementById('Tab' + tab_counter).appendChild(fbScript);

Answer

Saffar picture Saffar · Aug 24, 2011

This can happen if your javascript code is running before all parts of HTML are loaded. Try to put this code in a function and fire it on an onload event. or use the more elegant jQuery onload event. It is something like this

$().ready(function () {
    var fbScript = document.createElement("script");
    fbScript.type = "text/javascript";

    // Make script source the facebook plugin
    fbScript.src = "http://connect.facebook.net/en_US/all.js#xfbml=1";

    // Append script to appropriate tab
    document.getElementById("Tab" + tab_counter).appendChild(fbScript);

});