js load script/css/img

by Laurens Maneschijn

HTML

example bookmarklet of how to load several sources (in order if needed) and then run code

<hr>

Note that this example loads local files, which is only allowed on pages already local. localhost should be fine though, as will normal http(s) urls.

JavaScript

// javascript:

var load = (function() {
	function _load(tag) {
		return function(url) {
			return new Promise(function(resolve, reject) {
				var element, parent, url_attr;
				element = document.createElement(tag);
				element.onload = function() {
					resolve([element, url]);
				};
				element.onerror = function() {
					reject([element, url]);
				};
				switch(tag) {
					case 'img':
						parent = document.body;
						url_attr = 'src';
						break;
					case 'script':
						parent = document.body;
						url_attr = 'src';
						element.async = true;
						break;
					case 'link':
						parent = document.head;
						url_attr = 'href';
						element.type = 'text/css';
						element.rel = 'stylesheet';
						break;
				}
				element[url_attr] = url;
				parent.appendChild(element);
			});
		};
	}
	return {
		css: _load('link'),
		js: _load('script'),
		img: _load('img')
	};
})();

var baseurl = 'file:///D:/_BU_2018-04-30/old_c/www';

/*
// var $jquery_v1_7_1;
load.js(baseurl + '/js/jquery-1.7.1.min.js')
	.then(function(result){
//		$jquery_v1_7_1 = window.$;
//		window.$.noConflict(true);
		load.js(baseurl + '/js/jquery.tablesorter.min.js')
			.then(function(result){
				load.js(baseurl + '/js/jq_tabletools.js')
					.then(function(result){
						load.js(baseurl + '/js/jq_colortools.js')
							.then(function(result){
								$('table').filter(':not(.tablesorter_initialized)').addClass('tablesorter_initialized').tablesorter().table_selectable();
								console.log('click table headers to sort. ctrl/shift/alt click table cells to select table rows/cells.');
								$.noConflict(true);
							})
							.catch(function(result){
								$.noConflict(true);
							});
					})
					.catch(function(result){
						$.noConflict(true);
					});
			})
			.catch(function(result){
				$.noConflict(true);
			});
	});
*/

// var $jquery_v1_7_1;
load.js(baseurl + '/js/jquery-1.7.1.min.js')
	.then(function(result){
//		$jquery_v1_7_1 =...