2009-04-24 13 views
8

Tôi đã thử vài ngày qua để có được chiều cao của trang web từ thuộc tính Tài liệu của điều khiển WebBrowser.Lấy chiều cao của trang từ một điều khiển WinForms WebBrowser

Đây là nỗ lực mới nhất của tôi.

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; 
    } 
} 

Tôi đã cố gắng tìm ra chiều cao tối đa của trang bằng cách tìm phần bù đắp của phần tử thấp nhất trong trang.

Vấn đề là việc này vượt quá độ dài thực tế của trang khoảng 500px trong hầu hết các trường hợp.

Bất kỳ ai có ý tưởng nào? Tôi không thể tin rằng nó khó khăn như thế nào để có được chiều cao của một trang!

Trả lời

1

Tìm thẻ BODY và nhận được Bù đắp hình chữ nhật.Bottom của phần tử đó. Điều này sẽ cho bạn chiều cao của trang.

+0

Điều đó không làm việc cho tôi. Nó luôn mang lại cho tôi kích thước của điều khiển trình duyệt, không phải nội dung – Niki

16

này đã làm việc cho tôi:

webBrowser.Document.Body.ScrollRectangle.Height 
+0

Rực rỡ. Cảm ơn. – NLV

+0

Okie, nhưng khi trang được lưu trữ trên một máy khác, nó không hoạt động. Nếu trang được lưu trữ trên máy cục bộ của tôi, cả chiều cao và chiều rộng được hiển thị chính xác. Bất kỳ thông tin chi tiết nào? – NLV

+0

Bao giờ thử điều này trên http://www.regular-expressions.info/? Nó trả về 122 là chiều cao cuộn nhưng mã @Morgeh thực hiện nó ngay – CodeWrite

Các vấn đề liên quan