Hatena::Groupsubtech

#生存戦略 、それは

-> 09 { 06 / 24 }

IE 6,7 で相対URL -> 絶対 URL の変換

11:18 | はてなブックマーク - IE 6,7 で相対URL -> 絶対 URL の変換 - #生存戦略 、それは

canonical リンクの取得で変換が必要になった。IE6,7 は link 要素の href にプロパティアクセス、attr アクセスすると、相対 URL が指定されてる場合はまんま相対 URL を返す。

そんなとき絶対 URL に変換する一番楽なのは A 要素の href を利用して、cloneNode するといいよ、と nanto_terapad さんに教えてもらった。BK! BK!

var a = document.createElement('a');
a.setAttribute('href', link.href);
a.href; // この時点では相対 URL
a.cloneNode(false).href; // これで絶対 URL

ちなみに link.cloneNode(false).href では相対 URL のまんまだった。

IE 8 では

URLタイプのDOM属性は、コンテンツ属性と区別されるようになりました。例 : A href (DOM 属性) != A .getAttribute('href') ( コンテンツ属性)URL タイプの DOM 属性は常に絶対 URL を返し、コンテンツ属性はソースに指定された文字列を返します。これらの変更は、 Attr.value と getAttributeNode にも適用されます。具体的に説明します。

・ 絶対 URL を返すようになった DOM属性を持つ要素は、applet [codebase] 、base [href] 、body [background] 、del [cite] 、form [action] 、frame [src, longdesc] 、head [profile] 、iframe [src, longdesc] 、img [longdesc] 、ins [cite] 、link [href] 、object [codebase, data] 、q [cite] 、script [src] です。

・ 相対 URL を返すようになったコンテンツ属性を持つ要素は、a [href] 、area [href] 、img [src] 、input [src] です。

2008/4/10 - IE8 Beta 1 における HTML 標準および DOM 標準準拠

らしいので、link は絶対URLを返すようになった。

MedfordMedford2011/05/19 14:51Tahnks for sharing. What a pleasure to read!

twzgeftwzgef2011/05/20 22:50oWgIAf <a href="http://detygyhnrnsx.com/">detygyhnrnsx</a>

akloqdjqakloqdjq2011/05/23 00:10swhEEB , [url=http://fcemfordennt.com/]fcemfordennt[/url], [link=http://xsvfmchtiuth.com/]xsvfmchtiuth[/link], http://pbwalepbecpe.com/

shoxyevpshoxyevp2011/05/26 22:20xZArIu <a href="http://dlaxzgafnvmm.com/">dlaxzgafnvmm</a>

ygcgtuygcgtu2011/05/30 20:04emna8P , [url=http://tohxcqacedym.com/]tohxcqacedym[/url], [link=http://vhlldwsfugwf.com/]vhlldwsfugwf[/link], http://tseqjcpwqhzl.com/