Вот такая штука у меня в подвале, помимо синхронной загрузки скриптов из массива scripts, после загрузки вызываются функции из массива scripts_cb
var scripts = ['/style/jquery-1.7.1.min.js','/style/jquery.boxy.min.js','/style/smspilot.js?v2.3'];
var scripts_head = document.getElementsByTagName('head')[0] || document.documentElement;
var scripts_cb = [];
function scripts_ready( callback ) {
scripts_cb[ scripts_cb.length ] = callback;
}
function scripts_loaded() {
scripts.splice(0,1);
if (scripts.length > 0) {
scripts_load();
} else {
for( var i = 0; i<scripts_cb.length; i++) {
scripts_cb[i]();
}
}
}
function scripts_load() {
var script = document.createElement('script');
script.type = 'text/javascript';
script.async = true;
script.src = scripts[0];
script.onload = scripts_loaded;
// script.onerror = onerror;
script.onreadystatechange = function () {
var state = this.readyState;
if (state === 'loaded' || state === 'complete') {
script.onreadystatechange = null;
scripts_loaded();
}
};
scripts_head.insertBefore(script, scripts_head.firstChild);
}
window.setTimeout('scripts_load()', 50);