Почему document.styleSheets[0].href не обновляется?
Зачем document.styleSheets[0].href
не обновляется, но document.getElementsByTagName('link')[0].href
когда я динамически создаю <base/>
тег?
В Opera это работает нормально, но Firefox и Chrome не обновляют значение.
Вот код, вы можете запустить его на http://jsfiddle.net/XcDCk/.
Если вы не запускаете его на jsfiddle.net, вы должны добавить связанную таблицу стилей (<link rel="stylesheet" type="text/css" href="styles.css"/>
)
var base = document.createElement('base');
base.href = 'http://google.com/';
document.getElementsByTagName('head')[0].appendChild(base);
var link = document.getElementsByTagName('link')[0];
alert('Link: '+link.href);
var styleSheet = document.styleSheets[0];
alert('Stylesheet: '+styleSheet.href);
var hojaEstilos = document.styleSheets[0];
alert('Stylesheet + ownerNode: '+hojaEstilos.ownerNode.href);
Я мог бы сделать это (в третьем предупреждении), используя атрибут ownerNode (который на самом деле является элементом ссылки, поэтому я могу получить тот же результат, что и первое предупреждение), но я не могу понять, почему второе предупреждение не Работа.
Спасибо