これを明確に説明できるかどうかはわかりません。
いくつかの簡単なHTMLコードがあり、それをTwebbrowserにロードしています。次に、HTML出力のRectを取得して、Twebbrowserの高さのサイズを適切に変更できるようにします。
自動サイズ設定機能に似ていますが、自動サイズ設定するのは高さだけです。それは可能ですか?
よろしくお願いします...
これを明確に説明できるかどうかはわかりません。
いくつかの簡単なHTMLコードがあり、それをTwebbrowserにロードしています。次に、HTML出力のRectを取得して、Twebbrowserの高さのサイズを適切に変更できるようにします。
自動サイズ設定機能に似ていますが、自動サイズ設定するのは高さだけです。それは可能ですか?
よろしくお願いします...
document.body.scrollWidthとscrollHeightを使用して、TWebBrowserのドキュメント完了イベント内のページの高さを計算できます。
このコードはあなたが始めるはずです:
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要素の両方からディメンションを読み取り、ディメンションが異なることが多いため、最大値を取ります。さらに多くの場合、そのうちの1つがサイズ0x0を返します。この動作もブラウザのバージョンによって異なります。これは回避策です。ユースケースでこれを処理する正しい方法であるかどうかを確認する必要があります。
注:@Darkerstarが投稿した画像は、要素の寸法を取得するための古いMSDNイラストでした。更新されたバージョン(IE9用)は次のようです:InternetExplorer9のCSSOMを使用した要素の寸法と位置の測定。