Как получить доступ к псевдоэлементам (: before,: after и т. Д.) Или псевдоклассам (: hover,: посещения и т. Д.) С помощью MSHTML? - PullRequest
2 голосов
/ 12 июля 2011

Я анализирую документ с помощью MSHTML, и мне нужно определить псевдоэлементы в документе.Прямо сейчас у меня есть ссылка на IHTMLElement в .net-коде, и мне нужно определить, применяются ли к этому элементу псевдоэлементы, такие как «до» или «после», примененные к нему.

Например, в примере документаВ приведенном ниже коде у меня есть ссылка на div clearfloat (как элемент 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?

Спасибо:)

1 Ответ

0 голосов
/ 03 декабря 2011

Вы можете получить все таблицы стилей в интерфейсе 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));
}
...