当我动态创建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属性(在第三个警报中)完成它(实际上是链接元素,因此我可以获得与第一个警报相同的结果),但我无法理解为什么第二个警报不起作用。
谢谢