環境:
VS2005 C# WinForm (特別註明:不是ASP.net)
原先用這個方法(在DocumentCompleted事件函數裏):
webBrowser1.Document.Body.ScrollRectangle.Height
絕大多數情況下,這個方法能夠正確返回網頁高度。但個別情況下卻不行,獲取到高度明顯小於實際網頁高度。
這種網頁有個特點,就是它包含加載圖片的組件。我認為Document.Body.ScrollRectangle.Height在這裏發生錯誤是因為沒有計算上網頁組件所加載圖片的高度。開始我以為是圖片加載較慢所致,於是又額外設了幾秒延遲獲取Document.Body.ScrollRectangle.Height,結果還是不行。
有點麻煩了,哪位大蝦有解決辦法?
有了些進展:
使用這個:this.extendWebBrowser1.Document.Body.OffsetRectangle.Bottom
針對我開頭所提到特殊頁面。它雖然比實際網頁高度相同還是小壹些,但基本上不影響瀏覽了。
下面是我從網上找到的資料(應該是人工翻譯的):
我壹直從 WebBrowser 控件的文檔屬性獲取 web 頁的高度的最後幾天。
這是我最新的嘗試。
HtmlElementCollection children = webBrowser.Document.All; int maxOffset = 0; foreach (HtmlElement child in children) { int bottom = 0; bottom = child.OffsetRectangle.Bottom; if (bottom > maxOffset) { maxOffset = bottom; pageHeight = maxOffset; } } 我試了通過在頁中找到最低的元素的偏移的底部出頁面的最大高度。
問題是頁的這在大多數情況下試管苗 500px 有關的實際長度。
任何人如有任何意見嗎?我不敢相信只是為了獲得壹個頁面的高度是多麽困難 !
問題: Unknown
來自這個問題: stackoverflow.com
答案
找到 BODY 標簽,並獲得 OffsetRectangle.Bottom 的該元素。 這會給妳頁面的高度。