
どんな階層にhtmlがあっても対応できるJavaScriptの読み込み用jsファイル
2015年1月7日jQueryのみでつくるギミック
import.cssのようなことをJavaScriptでやろうとした場合、cssは外部ファイル内で相対パスを書けばそのcssからの相対パスで読み込んでくれますが、JavaScriptは外部ファイル内で相対パスを普通に書くとそのjsファイルが読み込まれるHTMLからの相対パスになってしまい、読み込んでいるhtmlの階層が変わると同じjsファイルを使い回すことができません。
今回はこの外部jsファイルに記述された相対パスの問題を解消した、読み込むhtmlの階層が変わっても対応できる読み込み用のJavaScriptを紹介します。
JavaScript
var root; var dir = document.getElementsByTagName('script'); var i = dir.length; while (i--) { var match = dir[i].src.match(/(^|.*\/)import\.js$/); if (match) { root = match[1] break; } } document.write('<script src="'+ root +'file01.js"></script>'); document.write('<script src="'+ root +'file02.js"></script>'); document.write('<script src="'+ root +'file03.js"></script>');