Bootstrap
function for loading js and css files
by peterbenoit
JavaScript
var bootstrap = (function() {
var bootstrap = function(scriptSrc, id, callback) {
var head = document.head || document.getElementsByTagName("head")[0];
var scriptId = id || "script" + Math.floor(Math.random() * 1234);
var loaded = false;
var scriptTag = null;
function notLoaded(src, type) {
var nodeList;
var propToCheck;
if(type === "js") {
var nodeList = document.getElementsByTagName("script");
propToCheck = "src";
} else if (type ==="css") {
var nodeList = document.getElementsByTagName("link");
propToCheck = "href";
}
var nodeArray = Array.prototype.slice.call(nodeList);
var len = nodeArray.length;
var notFound = true;
for(var c =0;c < len;c++) {
if((propToCheck in nodeArray[c]) && nodeArray[c][propToCheck] == src)
notFound = false;
}
return (notFound);
}
if(scriptSrc.indexOf(".js") > -1 && notLoaded(scriptSrc, "js")) {
scriptTag = createScriptElement(scriptSrc, scriptId);
};
if(scriptSrc.indexOf(".css") > -1 && notLoaded(scriptSrc, "css")) {
scriptTag = createCssElement(scriptSrc, scriptId);
};
scriptTag.onload = function() {
loaded = true;
};
scriptTag.onreadystatechange = function() {
if (!loaded) {
if (this.readystate == "loaded" || this.readystate == "completed") {
loaded = true;
}
}
}
head.appendChild(scriptTag);
function makeCallback() {
window.clearInterval(id);
if (callback != undefined) {
callback();
}
}
var id = window.setInterval(function() {
if (loaded) {
...