You can do something as simple as this, using the DOMContentLoaded event.
As soon as the initial HTML document has been completely loaded and parsed, the event fire and your script will load.
<head>
<script>
document.addEventListener('DOMContentLoaded', function() {
var s = document.createElement('script');
s.setAttribute('type', 'text/javascript');
s.setAttribute('src', localStorage.getItem('languageFilePath'));
document.getElementsByTagName('head')[0].appendChild(s);
})
</script>
</head>
Here is some more read on how to load script dynamically
The above script fragment were taken/simplified from what I personally use for my web pages, to support older browsers as well.
var DomLoaded = {
done: false, onload: [],
loaded: function () {
if (DomLoaded.done) return;
DomLoaded.done = true;
if (document.removeEventListener) { document.removeEventListener('DOMContentLoaded', DomLoaded.loaded, false); }
for (i = 0; i < DomLoaded.onload.length; i++) DomLoaded.onload[i]();
},
load: function (fireThis) {
this.onload.push(fireThis);
if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', DomLoaded.loaded, false);
} else {
/*IE<=8*/
if (/MSIE/i.test(navigator.userAgent) && !window.opera) {
(function () {
try { document.body.doScroll('up'); return DomLoaded.loaded(); } catch (e) { }
if (/loaded|complete/.test(document.readyState)) return DomLoaded.loaded();
if (!DomLoaded.done) setTimeout(arguments.callee, 10);
})();
}
}
/* fallback */
window.onload = DomLoaded.loaded;
}
};
DomLoaded.load(function () {
var s = document.createElement('script');
s.setAttribute('type', 'text/javascript');
s.setAttribute('async', true);
s.setAttribute('defer', true);
s.setAttribute('src', '/demo_files/script.js');
document.getElementsByTagName('head')[0].appendChild(s);
});