从IE中的HtmlElement的Dom获取IHTMLStyle3

时间:2009-02-25 16:16:59

标签: c# webbrowser-control

我在表单上有一个System.Windows.Form.WebBrowser控件。我将该浏览器对象导航到网址。

页面加载完成后,我想分析加载页面的各个方面。

特别是我有兴趣看到在IHTMLStyle3界面上找到的属性'writingMode'。

类似的东西:

public void MyMethod(HtmlElement element)
    {
        IHTMLElement2 element2 = element.DomElement as IHTMLElement2;
        IHTMLStyle3 style3 = element2.currentStyle as IHTMLStyle3;

        string writingMode = style3.writingMode;
    ...

问题是,style3值为null。我认为这意味着IHTMLElement2.currentStyle不支持IHTMLStyle3。

我也尝试过尝试投射IHTMLELement.style。但是,虽然它确实很快就像IHTMLStyle3一样,它似乎并没有包含样式,因为它已应用于Html元素。

1 个答案:

答案 0 :(得分:1)

查看文档,我认为您需要获取IHTMLElement2.currentStyle属性,因为常规style属性仅为内联样式。 IHTMLElement2.currentStyle的评论中指出了这种差异:

  

属性返回的值   IHTMLStyle和   IHTMLCurrentStyle接口不同   何时未设置对象的样式   排队。例如,如果作者   网页设置的颜色属性   只有通过一个红色的段落   链接或嵌入样式表,和   不是内联,那么   IHTMLCurrentStyle :: color属性   返回红色值,然后返回   IHTMLStyle :: get_color属性   没有返回值。但是,如果   author指定的值   颜色属性内联,如在   下面的例子,两者都有   IHTMLCurrentStyle ::颜色和   IHTMLStyle :: get_color属性   返回红色值。

currentStyle提供IHTMLCurrentStyle界面,在查询IHTMLCurrentStyle2时会根据需要为您提供writingMode