0

我不确定我是否可以清楚地解释这一点。

我有一些简单的 HTML 代码并将其加载到 Twebbrowser。然后,我想获取我的 HTML 输出的 Rect,以便我可以适当地重新调整我的 Twebbrowser 的高度。

这就像自动调整大小功能,但它只是自动调整大小的高度。那可能吗?

提前谢谢...

4

2 回答 2

2

You can work out the page height inside TWebBrowser's document complete event, using document.body.scrollWidth and scrollHeight

IE6 clientHeight etc

于 2011-07-28T04:26:26.780 回答
2

这段代码应该让你开始:

uses MSHTML, Math;

var
  HtmlElement, BodyElement:IHTMLElement2;
  PageWidth, PageHeight: Integer;
begin
  with WebBrowser1.ControlInterface do
  begin
    HtmlElement:=(Document as IHTMLDocument3).documentElement as IHTMLElement2;
    BodyElement:=(Document as IHTMLDocument2).body as IHTMLElement2;
  end;
  PageWidth:= Max(BodyElement.scrollWidth, HtmlElement.scrollWidth);
  PageHeight:= Max(BodyElement.scrollHeight, HtmlElement.scrollHeight);
end;

我从 HTML 元素和 BODY 元素中读取尺寸并取最大值,因为它们通常具有不同的尺寸。更常见的是其中一个返回大小 0x0。此行为也会从浏览器版本更改为浏览器版本。这是一种解决方法,您必须检查这是否是在您的用例中处理它的正确方法。

注意:@Darkerstar 发布的图片是用于获取元素尺寸的旧 MSDN 插图。更新版本(针对 IE9)似乎是这个:在 Internet Explorer 9 中使用 CSSOM 测量元素尺寸和位置

于 2011-07-29T12:57:27.923 回答