相対パスを絶対パスに変換するJavascript
相対パスを絶対パスに変換するJavascript
非常に簡単、シンプルな相対パスを絶対パスに変換する小技
function absolutePath(path){ var e = document.createElement('span'); e.innerHTML = '<a href="' + path + '" />'; return e.firstChild.href; }
使う時は
absolutePath('contents/text.html');
とします。
実行結果
http://www.kaasan.info/contents/text.html
と、なるのです。
解説
このJavascriptで生成されるHTMLのイメージはこんなカンジ。
<span><a href="http://www.kaasan.info/contents/text.html">contents/text.html</a></span>
指定文字列をspanタグで囲い
document.createElement('span');
さらにaタグで囲う
e.innerHTML = '<a href="' + path + '" />';
spanで囲われた最初の子要素のhref属性の中身は何ですか?とたずねているわけですね。
return e.firstChild.href;
spanが気に入らなければ何のタグでもいいわけですね。
私も調べて知って、分かればなんてことないんですが 今後もけっこう便利に使えそうです。