皆様いつもお世話になっております。
前回、TWebBrowserから全HTMLソースを取得するにはという質問に対し、下記の投稿で同じ質問があるとのご指摘をいただき大変ご迷惑をかけました。
https://www.petitmonte.com/bbs/answers?question_id=2049
そこで、文中のコードをもとにStringListに取得しようと、いろいろ挑戦したのですが、駆け出しの小生には解決することができません。文中に
OLEVariant(WebBrowser1.Document as IHTMLDocument2).Body.InnerHTML
DocumentElement.InnerHTMLがありますが、
別にコンポーネントを追加する必要があるのか、またはuses節に追加するのか解明できませんでした。
この二つは内容が違うと思いますが、どちらでも結構ですから、ご指導をいただけないでしょうか。
環境はWinXP Delphi6Personalです。
よろしくお願いいたします。m(_ _)m
http://www.euromind.com/iedelphi/embeddedwb.htm
を利用されてはどうでしょうか?
そうでなくともソースをみることで
実装したいことはたいていわかるかと思います。
documment以下なら バリアント割り当てれば、
なんでもできるけどね。
支援が働かないからこーどかくのがつらいけどね。
そういう意味では、unitを追加して型にあてたほうが楽かもね。
msdn/library/
に技術情報あるから それみるといい。
http://msdn.microsoft.com/workshop/browser/webbrowser/reference/objects/internetexplorer.asp
この前レスした一行目のコードじゃだめですか?
Memo1.Text:=WebBrowser1.OleObject.Document.documentElement.innerHTML;
再度確認しましたが、Delphi5,7では少なくとも取得できました。
ちなみに前回不満を言ったのは武田さんへではなくその前の方へです。
武田さんのリンクの解説じゃ普通は分からないと書いたのです。
あ様、ママん様、ご指導有り難うございます。丁寧なご指導有り難うございます。
ママんさまの一行目Memo1.Text:=WebBrowser1.OleObject.Document.documentElement.innerHTMLは
「モジュールxxxxのアドレス004AC07Eでアドレス000002fDに対する読み込み違反が起きました」というエラーがでます。(私には意味不明ですが)
これがいけそうな気がするのですが。
また、英文の解説はすぐ試してみる能力はありませんので、
このレベルになると、半年そこそこの小生にはハードですから、
じっくり参考にしながら、トライしてから、どうしてもわからないときは
また、ご指導ください。
有り難うございました。
一応この質問は解決とさせていただきます。
多分NavigateCompleteする前に読み込みしてるんでしょう。
TWebBrowserだったらOnNavigateComplete2イベント発生後に取得する必要があります。
procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.google.co.jp');
end;
procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
Memo1.Text:=WebBrowser1.OleObject.Document.documentElement.innerHTML;
end;
多分様、誠に有り難うございました。
完動しました。感謝します。
あれから、やみくもにチャレンジしていましたが、プログラムは一語違えば絶対に動かないわけだし、考えたから知らない単語がわき出てくるわけでもないし、もう一度投稿を読み直してみようと思ってみたら、
追加ご指導を発見して、試させていただきました。
これで、長期間の悩みが解消いたしました。
お礼を申し上げますm(_ _)m。
ツイート | ![]() |