2

hrefプロジェクトで-Tagの-Attributeを動的に設定し<a ...>ました。他の時点で、それが内部リンクであるかどうかを判断するために、<a>と呼ばれるのDOMプロパティをチェックします。hostname

基本的に、これが起こります。

<!--HTML-->
<a id="my" href="/my/first/link">MyLink</a>
<div id="log"></div>

そしてJSは:

// js
var a = document.getElementById( 'my' ),
    log = document.getElementById( 'log' );

log.innerHTML += a.hostname + '<br/>';

a.setAttribute('href',"/my/other/link");
log.innerHTML += a.hostname;

(このフィドルも参照してください:http://jsfiddle.net/RurQT/

d.href相対パスに設定したd.hostnameので、変更されないことを期待しています。したがって、log-Divには同じホスト名が2回含まれています。これはFFとChromeでは正しいです。

ただし、InternetExplorer 7、8、および9はすべて、2回目はホスト名が空であると主張しています。

最初のリンクはずっと相対的だったので、私は特に混乱しています!<base href>ところで、私にはセットがありません。

aInternetExplorerに-DOM-Elementの「hostname」-プロパティを更新させる方法についての提案をいただければ幸いです。

4

1 に答える 1

4

あなたはそれを隠してリセットしなければならないでしょう:

var d = document.getElementById( 'my' ),
var h = d.hostname
d.setAttribute('href',"/my/other/link");
d.hostname = h
于 2012-05-25T14:45:51.570 に答える