我在表单上有一个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元素。
答案 0 :(得分:1)
查看文档,我认为您需要获取IHTMLElement2.currentStyle
属性,因为常规style
属性仅为内联样式。 IHTMLElement2.currentStyle
的评论中指出了这种差异:
属性返回的值 IHTMLStyle和 IHTMLCurrentStyle接口不同 何时未设置对象的样式 排队。例如,如果作者 网页设置的颜色属性 只有通过一个红色的段落 链接或嵌入样式表,和 不是内联,那么 IHTMLCurrentStyle :: color属性 返回红色值,然后返回 IHTMLStyle :: get_color属性 没有返回值。但是,如果 author指定的值 颜色属性内联,如在 下面的例子,两者都有 IHTMLCurrentStyle ::颜色和 IHTMLStyle :: get_color属性 返回红色值。
currentStyle
提供IHTMLCurrentStyle
界面,在查询IHTMLCurrentStyle2
时会根据需要为您提供writingMode
。