P-0026 JavaScript から JavaScript を呼び出す

NN 4.x では JavaScript 内で import を使って別の JavaScript を呼び出すことができますが、 IE はこの構文に対応していません。でも次のようにすると、 IE でも NN でも、スクリプトから別のスクリプトを呼び出すことができます。

document.write('<script type="text/javascript" charset="Shift_JIS" src="another.js"></script>');

タネを明かせば何のことはない、単に外部スクリプト埋め込みの記述を出力するだけのことですが、こうして外部スクリプトを埋め込んでおくと、元のスクリプトの実行完了後にそちらに処理が移り、結果として「複数スクリプトの連携」のようなことができるわけです。

使える局面は限られますが、使いようによっては色々なことができます。ちなみに、 document.write で出力する<script></script>の中に直接スクリプトを書いても動作します。

参考 : 関数を作ってしまう

当サイトでは、別ファイル呼び出しの関数を定義して使っています。

function chain(File) {
  File = 'http://piro.sakura.ne.jp/common/scripts/' + File;
  document.write('<script type="text/javascript" charset="Shift_JIS" src="' + File + '"></script>');
}
chain('SwitchCSS.js');

こういうものを作っておくと、ブラウザ別のスクリプトを呼びだしたり必要のないモジュールは読み込まなかったり、色々応用が利くと思います。