2011-11-28 8 views
6

jQuery/JavaScriptを使用してすべてのブラウザでアンカーリンクの完全なURLを取得するにはどうすればよいですか?たとえば、http://www.mysite.com/mypage.aspx<a href="../mypage.aspx"></a>に戻したいとします。jQuery/JavaScriptを使用してハイパーリンクから完全なURLを取得

Iは、以下を試してみました:

  1. $(this).attr('href'):問題は、jQueryのHREF(即ち、../mypage.aspx)の正確な値を返すことです。

  2. this.getAttribute('href'):Internet Explorerでは動作しますが、FireFoxでは上記と同じ動作をします。

代替手段は何ですか。現在のサイトのパスをhref値に追加するだけでは、hrefの値が現在のディレクトリをエスケープする上記の場合には機能しないため、単純に追加することはできません。

+0

http://stackoverflow.com/questions/303956/jquery-select-a-which-href-contains-some-string –

+0

の可能性のある重複あなたはこの質問をチェックしたいかもしれない@stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue –

+1

@putnick、それは間違いなくその複製ではありません。これは表面上のあなたの基本的なn00bert url propery質問のようですが、もう少し複雑です。 –

答えて

5

img要素を作成し、取得したhref値にsrc属性を設定できます。 src属性を取得すると、完全修飾されます。ここで私はhttp://james.padolsey.com/javascript/getting-a-fully-qualified-url/から使用している例機能である:

function qualifyURL(url){ 
    var img = document.createElement('img'); 
    img.src = url; // set string url 
    url = img.src; // get qualified url 
    img.src = null; // no server request 
    return url; 
} 
+0

明確にするために、これは私がテストしたすべてのブラウザ、IE 6-9、Chrome、FireFox、およびSafariで動作します。 –

+1

少なくとも、Chromeでは、*これはURLのサーバー要求を引き起こすことに注意してください。 – user113215

関連する問題