Как определить высоту веб-страницы без использования элемента управления браузера

#c# #.net #dom #webbrowser-control

#c# #.net #dom #webbrowser-управление

Вопрос:

Мне нужно получить отображаемую высоту веб-страницы при отображении в IE.

В настоящее время я использую элемент управления WebBrowser для загрузки HTML-страницы, а затем нахожу высоту клиента документа (или высоту прокрутки, я забыл, какую). Это работает хорошо.

Проблема в том, что мне нужен этот код для запуска из веб-службы в результате вызова API, а запуск элемента управления на основе Windows Form для загрузки в элемент управления WebBrowser уродлив и (я предполагаю) невероятно ресурсоемкий.

Итак, существует ли реализация браузера без головы, которая позволила бы мне определить вероятную высоту отображаемого HTML? Я знаю, что это не сработало бы для iframes, divs, Которые прокручиваются и т.д., И это не обязательно должно быть сверхточным (в пределах 200 пикселей было бы хорошо).

HTML-страницы, которые мы тестируем, имеют высоту от 700 пикселей до многих тысяч пикселей, поэтому вычисление приблизительной высоты было бы идеальным. Используемый HTML, как правило, довольно прост, поскольку эти страницы на самом деле представляют собой электронные письма в формате HTML, извлеченные из электронной почты и отправленные в веб-браузер.

Ответ №1:

Это действительно зависит от браузера и его механизма рендеринга. Вероятно, вам придется использовать средство визуализации.

Если ваш HTML стандартный, вы должны иметь возможность использовать возможность рендеринга HTMLayout в памяти, и результаты будут похожи на другие браузеры.

У него есть .NET-оболочка по адресу http://code.google.com/p/nabu-library

Комментарии:

1. Это выглядит идеально, спасибо! Существует класс HtmlWindowless, который (через свойство root) Я могу перейти к HtmlTag.ScrollInfo. Размер — я надеюсь, этого будет достаточно, чтобы получить высоту страницы.