2009-02-25 85 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