2009-02-25 87 views
3

我在窗体上有一个System.Windows.Form.WebBrowser控件。我将该浏览器对象导航到一个url。从IE中的HtmlElement的Dom获取IHTMLStyle3

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

特别是我有兴趣看到IHTMLStyle3接口上的属性'writingMode'。

喜欢的东西:

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

     string writingMode = style3.writingMode; 
    ... 

的问题是,该节日礼物值为null。我认为这意味着IHTMLElement2.currentStyle不支持IHTMLStyle3。

我试过也尝试铸造IHTMLELement.style。但尽管如IHTMLStyle3那样愉快地施展,但它似乎并没有包含它应用于Html元素的样式。

回答

1

看看文档,我相信你需要得到IHTMLElement2.currentStyle属性,因为常规的style属性只是内联样式。这种差异在备注栏标明为IHTMLElement2.currentStyle

通过性能的IHTMLStyle和 IHTMLCurrentStyle接口 返回的值不同 当一个对象的风格是不是设置 内联。例如,如果 网页的作者只能通过链接或嵌入的样式表 和 套 一款颜色属性设置为红色不在线,那么 IHTMLCurrentStyle ::颜色属性 返回值红色,并且 IHTMLStyle :: get_color属性确实不会返回值 。但是,如果 作者指定的 颜色属性内联的价值,如 下面的例子中,无论是 IHTMLCurrentStyle ::颜色和 IHTMLStyle :: get_color性能 返回值红色。

currentStyle提供IHTMLCurrentStyle接口,用于查询IHTMLCurrentStyle2时会给你writingMode根据您的需要。

+0

- 傻我我试图将currentStyle投射为HTMLStyle3 - 我应该将它作为HTMLCurrentStyle2投射! – 2009-02-25 19:05:06