【JavaScript】任意のURLをベースにして、相対パスを絶対パスに変換(クロスブラウザっぽく)
AutoPagerize | Google グループでの話題をきっかけに、任意のURLをベースとして、相対パスを絶対パスに変換する方法を模索してみました(IE7・Firefox2.0.0.13・Opera
9.27・Safari3.1で確認)。
■ソース(動作サンプル)
■ソース(動作サンプル)
var pathToURL=(function(){
var wimg=new Image();
var work=document.createElement('iframe');
work.style.display='none';
document.body.appendChild(work);
var wdoc=work.contentWindow.document;
return function(path,base){
var url=path;
if (!base) { // default: location.href
wimg.src=path;
url=wimg.src;
}
else {
wdoc.open();
wdoc.write('<head><base href="'+base+'" \/><\/head><body><img src="'+path+'" \/><\/body>');
wdoc.close();
url=wdoc.getElementsByTagName('img')[0].src;
}
return url;
};
})();
■使い方
var wimg=new Image();
var work=document.createElement('iframe');
work.style.display='none';
document.body.appendChild(work);
var wdoc=work.contentWindow.document;
return function(path,base){
var url=path;
if (!base) { // default: location.href
wimg.src=path;
url=wimg.src;
}
else {
wdoc.open();
wdoc.write('<head><base href="'+base+'" \/><\/head><body><img src="'+path+'" \/><\/body>');
wdoc.close();
url=wdoc.getElementsByTagName('img')[0].src;
}
return url;
};
})();
pathToURL(相対パス[,ベースURL])■参考
※ベースURLを省略した場合は、現在のページがベースとなる。
pathToURL - AutoPagerize | Google グループ
? で始まるリンクを正しく扱えてない - ロックスターになりたい
相対パスを絶対パスに変換する - 実用
【2008/04/08追記】
相対パスから絶対パスに変換 - m2
« 【JScript】ActiveXObject('htmlfile')で発生する不具合 | トップページ | 【ココログ】はてなブックマークコメントを個別ページにさり気なく表示するスクリプト »
「パソコン・インターネット」カテゴリの記事
- Twitter 原寸びゅー:PC版ブラウザ用・Twitterの画像閲覧と保存がはかどる拡張機能の紹介(2016.02.12)
- スマートフォンをPC上の音楽を再生するためのリモコンとして使いたい(2016.01.10)
- BIGLOBE光ネクスト(大阪)の通信速度問題 - プロバイダ選びは難しい……(2015.08.13)
- BOOK☆WALKER さんに関して最近経験した不安と不満(2015.08.10)
- 『#鳥獣戯画制作キット』が楽しい(2015.07.01)
「おもいつき」カテゴリの記事
- ココログをTwitterカードに対応させてみる(2016.11.23)
- 神使の兎 ~宇治神社にて~(2016.07.10)
- Twitter 原寸びゅー:PC版ブラウザ用・Twitterの画像閲覧と保存がはかどる拡張機能の紹介(2016.02.12)
- スマートフォンをPC上の音楽を再生するためのリモコンとして使いたい(2016.01.10)
- 【覚書】風柳亭(ココログプロ)をレスポンシブWebデザイン化(Bootstrap3使用)(2015.10.09)
« 【JScript】ActiveXObject('htmlfile')で発生する不具合 | トップページ | 【ココログ】はてなブックマークコメントを個別ページにさり気なく表示するスクリプト »
コメント