ブックマークレットからjQueryとjQuery.blockUIを使いたかったので書いてみた
IE6とfirefox2ではこれで動いてた
var RSLoader = function(arr, callback){ this.target = arr; this.index = 0; this.callback = callback; this.load(); }; RSLoader.prototype = { load : function(){ index = this.index; if(this.target.length <= index){ if(this.callback) this.callback(); return; } var src = this.target[index].src; var obj = this.target[index].obj; if (!eval("window." + obj)) { s = document.createElement('script'); s.charset = 'utf-8'; //問題? s.type = 'text/javascript'; s.src = src; document.body.appendChild(s); } var total = 0; var interval = 200; var timeout = 3000; var loader = this; var timer = setInterval(function(){ if(eval("window." + obj)){ clearInterval(timer); loader.index++; loader.load(); }else{ total += interval; if(timeout < total){ alert("読み込みがタイムアウトしました。中断します。"); clearInterval(timer); } } }, interval); } } var rsLoader = new RSLoader( [{src : 'http://hoge.com/jquery.js', obj : 'jQuery'}, {src : 'http://hoge.com/jquery.blockUI.js', obj : 'jQuery.blockUI'} ], //これがロード完了後にコールバックされる function(){ start(); } );
- 使い方
javascript:(function(){var s = document.createElement('script');s.charset = 'utf-8';s.type = 'text/javascript';s.src = 'http://hoge.com/hoge.js';document.body.appendChild(s);})();