Я установил href
-Attribute <a ...>
-Tag динамически в проекте. В какой-то другой момент я проверяю DOM-свойствопод названием hostname
, чтобы выяснить, является ли это внутренней ссылкой.IE забывает имя хоста A-Tag после изменения HREF
В принципе, это то, что происходит.
<!--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 обновлением «hostname» -Property a
-DOM-Element.
Похоже, это единственная возможность, на самом деле. Тем не менее, в моем случае я решил продлить проверку, поэтому пустая строка 'hostname' будет обрабатываться одинаково на' (d.hostname == location.hostname) ', которая будет работать нормально, если у вас нет базы href установлен в другой домен. – Lukx
Это была моя проблема. Damn IE ... –
Как насчет свойства 'host' (включая порт)? Это ведет себя так же? – sompylasar