2011-05-11 1 views
4

Je dois obtenir le rendu hauteur d'une page Web lorsqu'il est rendu dans IE.Comment détecter la hauteur de la page Web sans utiliser un contrôle de navigateur

J'utilise actuellement le contrôle WebBrowser pour charger une page HTML, puis trouver clientHeight du document (ou scrollHeight, j'ai oublié lequel). Cela fonctionne bien. Le problème est que j'ai besoin que ce code s'exécute à partir d'un service Web suite à un appel d'API et que le lancement d'un contrôle Windows Form pour charger le contrôle WebBrowser soit moche et (je suppose) incroyablement gourmand en ressources. Donc, y a-t-il une implémentation de navigateur sans tête qui me permettrait de déterminer la hauteur probable du HTML rendu? Je sais que cela ne fonctionnerait pas pour les iframes, les divs qui défilent, etc, et il n'a pas besoin d'être super précis (dans 200px serait bien).

Les pages HTML que nous testons vont d'environ 700 pixels de haut à plusieurs milliers de pixels de haut, donc déterminer la hauteur approximative serait parfait. Le HTML utilisé tend à être assez simple, car ces pages sont en fait des emails HTML, extraits de l'email et envoyés à un navigateur web.

Répondre

1

Cela dépend vraiment du navigateur et de son moteur de rendu. Vous devrez probablement utiliser un moteur de rendu. Si votre HTML est standard, vous devriez être capable d'utiliser la capacité de rendu en mémoire de HTMLayout et les résultats seront similaires à ceux des autres navigateurs.

Il a une enveloppe .NET à http://code.google.com/p/nabu-library/

+0

Cela semble parfait, merci! Il y a une classe HtmlWindowless qui (via la propriété root) je peux obtenir un HtmlTag.ScrollInfo.Size - J'espère que cela suffira pour obtenir la hauteur de la page. –

Questions connexes