私はこれを明確に説明できるかどうかわかりません。Twebbrowserの内部にクライアントを挿入する機能はありますか?
シンプルなHTMLコードがあり、Twebbrowserにロードしています。次に、自分のHTML出力のRectを取得して、Twebbrowserの高さを適切に変更できるようにしたいと考えています。
自動サイズ機能と似ていますが、自動サイズの唯一の高さです。 は可能ですか?
事前にありがとう...
私はこれを明確に説明できるかどうかわかりません。Twebbrowserの内部にクライアントを挿入する機能はありますか?
シンプルなHTMLコードがあり、Twebbrowserにロードしています。次に、自分のHTML出力のRectを取得して、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用)は、次のようなものです:Measuring Element Dimension and Location with CSSOM in Internet Explorer 9
あなたはdocument.body.scrollWidthを使用して、TWebBrowserのドキュメントcompleteイベント内のページの高さをうまくできるとscrollHeight
いい画像。ソース? – NGLN
画像サーバが少し遅くなっているようです – Darkerstar
HTMLコードの場合は、JavaScript関数を記述してDelphiの関数を使用できます。 – SimaWB
注意:ブラウザのサイズを変更すると、ページレイアウトとドキュメントの幅と高さが変更される可能性があります。ユースケースによっては、これは望ましくないかもしれません。 –