人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VisualBasic2005Professionalで勉強中の者です。WebBrowser1に、2つのフレーム(各フレームののnameはFrame1、Frame2とします)に分割されたページが表示されているとします。このうちFrame2のDocumentTextを取得するにはどうすればよいでしょうか。具体的なコードをご教示頂ければと思います。

●質問者: crashtruck
●カテゴリ:コンピュータ インターネット
✍キーワード:name コード フレーム 勉強
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● KirakiraHikaru
●100ポイント ベストアンサー

DocumentText自体はないのですが、下記のようにしてそのフレームのHtmlDocumentオブジェクトを取得できます。

WebBrowser1.Document.Window.Frames.Item("Frame2").Document

上記のItem("Frame2")の部分に名前を指定すると、そのFrameが取得できます。

また、Item(0).Documentという風に番号指定にすると1番目のFrameのHtmlDocumentオブジェクトが取得できます。

(フレームオブジェクト自体は、?Frames.Item("Frame2"))


HtmlDocumentの中にすべての要素が含まれているので、

下記のようにするとBodyタグ内の情報をテキストで取得できます。

WebBrowser1.Document.Window.Frames.Item("Frame2").Document.Body.OuterHtml

2 ● KirakiraHikaru
●100ポイント

DocumentText自体はWebBrowser自身にしかないプロパティなので、

どうしてもDocumentTextとして取得したい場合は、

下記のように新しいWebBrowserを一時的に生成し、

それに取得したいフレームのHTMLファイルを読み込ませれば、

該当フレームをDocumentTextとして取得できます。

Dim testWebBrowser As New WebBrowser
testWebBrowser.Navigate(WebBrowser1.Document.Window.Frames.Item("Frame2").Url)
MsgBox(testWebBrowser.DocumentText)
testWebBrowser = Nothing

ただ、先の回答のとおり、HtmlDocumentオブジェクトにはすべての情報が含まれています。

どのような情報が格納されているかは、

HTMLをWebBrowserが読み込んだあとにブレークポイントを張っておいて実行し、

ブレークポイントで停止したときにWebBrowserオブジェクトをウォッチウィンドウで見るとわかります。

1.HTMLをWebBrowserが読み込んだときに呼び出される関数(作成していない場合は作成)

の適当なところにブレークポイントを張る

(MsgBoxのところで右クリックし、「ブレークポイント」->「ブレークポイントの挿入」)

Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, _
ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) _
Handles WebBrowser1.DocumentCompleted

  ・・・・・
  MsgBox(WebBrowser1.Document.Window.Frames.Item("Frame2").Document.Title)
End Sub

2.実行する。WebBrowserでHTMLを読み込ませる。

3.HTMLをWebBrowserが読み込んだときに呼び出される関数で止まったら、

WebBrowser1.Document.Window.Frames.Item("Frame2").Documentをドラッグして選択した状態にして、

その上で右クリックし、「クイックウォッチ」を選択

すると、クイックウォッチウィンドウにオブジェクトの中身が表示されます。

下記に詳しく載っています。

http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard...

◎質問者からの返答

うっかりして返信を忘れてしまいました、大変失礼しました。周辺事項まで教えてくださってありがとうございます。すばらしいです。またぜひよろしくお願い申し上げます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ