HOSTなど省略されているリンクを正しく取得するには?
JavaScriptの'htmlfile'オブジェクトを使ってリンクを取得すると
ホストなどが省略されているリンクは、ローカルのパスが混じってしまう。
今まで正規表現で変換させていたけど、正規表現が苦手なもんだから
どうもうまく取得できない。
元のソースを見て気が付いたのだが、BASEタグというのを見掛けた。
<base href="http://aaaa/bbbb/">
このタグが設定されている場合、これを元にしている感じ。
だから、このタグが設定されていない場合は
var doc = new ActiveXObject('htmlfile'); doc.write(ソース) doc.close(); var elm = doc.createElement('base'); elm.href = 'http://aaaa/bbbb/' doc.getElementsByTagName('head')[0].appendChild(elm);
こんな感じで作成すれば、省略されているリンクを正しく取得できるみたいです(たぶん)。
先程気が付いたので早速、少し前に書いた
パネルでタブを移動させるunDonut+modのパネル用HTML
も、書き直しました。
※追記
また不具合が見付かったので再アップしました。