在显示具有命名空间元素的XHTML文档的浏览器中,如何使用JavaScript访问HTML命名空间之外元素的.style
属性?如何在XHTML中访问名称空间元素上的.style
document.getElementsByTagNameNS(namespace, tagName)
返回对象集合,但对象没有CSSStyleDeclaration
样式属性(至少在Chrome或Firefox中不存在)。
你可以说这是由设计决定的,CSS是特定于HTML的。但名称空间CSS对内容的样式很好。所以风格信息就在那里。我如何读写它?
我想知道,例如,哪些元素正在渲染为块和内联。
(编辑添加例如:)
看到这一点,去www.johnmccaskey.com/style.xhtml。蓝色部分位于HTML名称空间中,http://www.tei-c.org/ns/1.0
名称空间中的红色部分。 CSS风格都很好。例如,在Chrome的控制台中输入document.getElementsByTagName("box")
。你会看到两个<box>
对象。 HTML中的一个具有.style
属性,TEI没有。
'getElementsByTagNameNS'返回元素的集合,所以结果不会有任何'style'属性。如果你做'document.getElementsByTagNameNS(namespace,tagName)[0] .style'是否给你一些东西? –
糟糕,我的意思是集合中的对象缺少'.style'。我编辑了这个问题。 – JPM
好的。如果你可以包含一些导致这种行为的代码,它会更容易回答。 –