XMLHttpRequestを利用した外部js動的ロード関数
げげげ。明日(8月1日)テスト!。こんなことしてる場合じゃないじゃん。まあいいやせっかく書いたし。
function load(script) { var loaded = load.loaded; if(loaded[script]) return; var http = load.xmlhttp; var name = script.split('.')[0]; http.open('GET', script, false); http.send(''); eval(http.responseText); window[name] = eval(name); http.abort(); }; load.loaded = {}; load.xmlhttp = function() { if(window.XMLHttpRequest) return new XMLHttpRequest; if(window.ActiveXObject) { var xmls = [ 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP', 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP.4.0', 'Msxml2.XMLHTTP.5.0' ]; for(var i=xmls.length-1;i>=0;i--) { try{ return new ActiveXObject(xmls[i]); } catch(e){ /* empty */ } } } return null; }();
っていうかこのコードを汎用的にエレガントにした奴がJSAN.jsになるよな…と思いつつ(http://jsan.jp/)。ファビコンのサイが可愛いなと♪