Этот код должен помочь вам начать:
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) выглядит следующим образом: Измерение размера и местоположения элемента с помощью CSSOM в Internet Explorer 9 .