如何用C#获取网页高度?

大狗狗 2010-09-27 04:25:45
环境:
VS2005 C# WinForm (特别注明:不是ASP.net)

原先用这个方法(在DocumentCompleted事件函数里):
webBrowser1.Document.Body.ScrollRectangle.Height

绝大多数情况下,这个方法能够正确返回网页高度。但个别情况下却不行,获取到高度明显小于实际网页高度。比如http://buy.cn.yahoo.com/chaoliu/4090/0/1/

这种网页有个特点,就是它包含加载图片的组件。我认为Document.Body.ScrollRectangle.Height在这里发生错误是因为没有计算上网页组件所加载图片的高度。开始我以为是图片加载较慢所致,于是又额外设了几秒延迟获取Document.Body.ScrollRectangle.Height,结果还是不行。

有点麻烦了,哪位大虾有解决办法?
...全文
530 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
無名小伙 2011-05-16
  • 打赏
  • 举报
回复
稀里糊涂的就结贴了?为的是什么
大狗狗 2010-09-27
  • 打赏
  • 举报
回复
有了些进展:

使用这个: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 的该元素。 这会给你页面的高度。

通过回答: Rob
大狗狗 2010-09-27
  • 打赏
  • 举报
回复
再up up up
大狗狗 2010-09-27
  • 打赏
  • 举报
回复
个别情况我说清楚了,还给出了链接

目的是:由于项目需要,我去掉了WebBrowser原先的滚动条,而改用自己的滚动条控件。所以我需要获取到网页高度。
捷哥1999 2010-09-27
  • 打赏
  • 举报
回复
你的目的是为了?
kenesyu 2010-09-27
  • 打赏
  • 举报
回复
个别情况是什么情况?能说清楚吗?

111,101

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧