2

当我动态创建标签时,为什么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 属性(实际上是链接元素,所以我可以得到与第一个警报相同的结果)来完成它(在第三个警报上),但我不明白为什么第二个警报没有工作。

谢谢

4

0 回答 0