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