JavaScriptを動的読み込みする
scriptタグを使用する方法
code:js
var script = document.createElement( 'script' );
script.type = 'text/javascript';
document.body.appendChild( script );
globalに変数を追加できる
簡単
同じもの再読み込みするときに困る
XMLHttpRequestとevalを使用する方法
code:js
var req = new XMLHttpRequest();
req.send("");
eval(req.responseText);
globalに変数を追加できない
他のコードブロックとやり取りしたい場合はwindow.hoge = 1とかwindowに追加する
結局このやり方が一番都合が良い気はするけしごむ.icon
code:js
function getScript(source, callback) {
var script = document.createElement('script');
var prior = document.getElementsByTagName('script')0; script.async = 1;
script.onload = script.onreadystatechange = function( _, isAbort ) {
if(isAbort || !script.readyState || /loaded|complete/.test(script.readyState) ) {
script.onload = script.onreadystatechange = null;
script = undefined;
if(!isAbort) { if(callback) callback(); }
}
};
script.src = source;
prior.parentNode.insertBefore(script, prior);
}
1. URLから非同期で読み込んで実行
2. callback 関数を実行
3. test.js を DOM から削除