[英]IE forgets an A-Tag's hostname after changing HREF
我在项目中动态设置了<a ...>
的href
<a ...>
。 在其他方面,我检查<a>
的DOM-Property,称为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包含两次相同的主机名。 这在FF和Chrome中是正确的。
但是,InternetExplorer 7,8和9都坚持第二次,主机名为空。
我特别困惑,因为第一个链接一直是相对的! 我没有任何<base href>
设置,顺便说一下。
我非常感谢任何建议如何让InternetExplorer更新a
-DOM-Element的“hostname”属性。
你必须隐藏并重新设置它似乎:
var d = document.getElementById( 'my' ),
var h = d.hostname
d.setAttribute('href',"/my/other/link");
d.hostname = h
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.