我正在使用MSHTML解析文档,我需要确定文档中的伪元素。现在我在.net代码中引用了IHTMLElement,我需要确定这个元素是否有伪元素,例如“before”或“after”应用于它。
例如,在下面的示例文档代码中,我引用了clearfloat div(作为IHTMLElement,来自我的MSHTML .net代码),我需要确定伪元素的“后”样式是什么。我怎么能用MSHTML做到这一点?
<style type="text/css">
.clearfloat:after
{
display: block;
visibility: hidden;
clear: both;
height: 0;
content: ".";
}
</style>
<div class="clearfloat">
Some text...
</div>
更常见的是伪类,例如“:hover”。我也无法弄清楚如何确定:悬停风格。我真的需要伪元素,但我希望如果我能弄清楚如何访问伪类,它可能会产生关于访问伪元素的线索。
有谁知道如何使用MSHTML访问伪类或元素?
谢谢:)
答案 0 :(得分:0)
您可以在IHTMLDocument2界面中获取所有样式表:
参考:Microsoft.mshtml(或使用反射)
WebBrowser browser;
...
IHTMLDocument2 doc2=browser.Document.DomDocument as IHTMLDocument2;
if(doc2!=null)
{
Int32 index=doc2.styleSheets.length-1;
IHTMLStyleSheet style = doc2.styleSheets.item(index);
Int32 ruleIndex=style.rules.length-1;
String selector = style.rules.item(ruleIndex).selectorText;
MessageBox(String.Format("Last selector in last style sheet: {0}",selector));
}