/**
* @module
* @author daemon.devin <daemon.devin@gmail.com>
*
* @param {String} file - The path of the file you want to load.
* @param {Function} callback (optional) - Called after script load.
*/
var loader = loader || (Function() {
return {
load: function(file, callback) {
var script = document.createElement('script');
script.src = file, script.async = true;
// If defined, execute the callback after checking
// if the script has been successfully loaded.
if (callback !== undefined) {
// IE calls `script.onreadystatechange()` continuously
// as the script loads. Use `script.onreadystatechange()`
// to check if the script has finished loading.
script.onreadystatechange = function() {
// When the script finishes loading, IE sets
// `script.readyState` to either 'loaded' or 'complete'.
if (script.readyState === 'loaded' ||
script.readyState === 'complete') {
// Set `onreadystatechange()` to null to prevent
// it from firing again.
script.onreadystatechange = null;
// Execute the callback.
callback (file );
}
};
// The following is one of the reasons IE is infereor
// to all modern browsers.
script.onload = function () {
callback ( file );
};
}
// Add the loaded script to the end of the document
// so it won't hinder the rest of the page from loading.
document.body.appendChild(script);
}
};
}());
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter