« 【JScript】ActiveXObject('htmlfile')で発生する不具合 | トップページ | 【ココログ】はてなブックマークコメントを個別ページにさり気なく表示するスクリプト »

2008/04/08

【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;
    };
})();
■使い方
pathToURL(相対パス[,ベースURL])
※ベースURLを省略した場合は、現在のページがベースとなる。
■参考
pathToURL - AutoPagerize | Google グループ
? で始まるリンクを正しく扱えてない - ロックスターになりたい
相対パスを絶対パスに変換する - 実用
【2008/04/08追記】
相対パスから絶対パスに変換 - m2

« 【JScript】ActiveXObject('htmlfile')で発生する不具合 | トップページ | 【ココログ】はてなブックマークコメントを個別ページにさり気なく表示するスクリプト »

おもいつき」カテゴリの記事

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/161784/40809492

この記事へのトラックバック一覧です: 【JavaScript】任意のURLをベースにして、相対パスを絶対パスに変換(クロスブラウザっぽく):

« 【JScript】ActiveXObject('htmlfile')で発生する不具合 | トップページ | 【ココログ】はてなブックマークコメントを個別ページにさり気なく表示するスクリプト »

戻るリンク追加

カレンダー

2018年6月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

ココログカレンダーPlus

検索


    • Web全体 サイト内
    • 蔵書のISBNを入力して下さい
    • はじめる前
      初級者向け
      上級者向け
      ブログ紹介
      結果を表示

最近のトラックバック

コメントリストツリー化

無料ブログはココログ