アクセスカウンタ

プロフィール

Author:croissant3

カテゴリー

最近の記事

月別アーカイブ(タブ)

最近のコメント

最近のトラックバック

月別アーカイブ

ブロとも申請フォーム

この人とブロともになる

月別アーカイブ

カレンダー

11 | 2016/12 | 01
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

小さな天気予報


-天気予報コム- -FC2-

全ての記事を表示する

全ての記事を表示する

PCノンセクションの10♪
PCに関することを色々と。っつうか最近VBネタばっかorz
スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
↑参考になったら拍手よろろ
フレームつきページの読み取り

WebBrowserに対してDHTMLで操作を行う際、
ページの読み込みが完全に終わるまで待ってから
コチョコチョと操作を行う流れになる。。 

実際にはWebBrowserのDocumentCompleteイベントをトリガーに
コチョコチョ操作を実装する訳で・・・
通常のフレーム分割されていないページなら
DocumentCompleteイベントを1度待てば済む話。


ところがフレーム分割されているページだと
DocumentCompleteイベント、BeforeNavigate2イベントが
非同期に複数パカパカとイベントが上がってくる。
さて全てのドキュメントを読み込むには
どこまで待てば良いのか?というのが今回のテーマ。


結果から話す。

WebBrowserのDocumentCompleteでこんな実装をすれば良い。

'----------------------------------
If pDisp Is WebBrowser.Object then
  '最後の親フレーム
Else
  '子供フレーム
  '読み込み途中なので無視
  Exit Sub
End If

'コチョコチョ処理をここから実装。
  :
  :
'-----------------------------------


ちなみにDocumentCompleteが発生する前に何か処理をしたい場合も一緒。

BeforeNavigate2イベントの中で

'-----------------------------------
If pDisp Is WebBrowser.Object then
  '親フレーム
Else
  '子フレームなので無視
  Exit Sub
End If
'初期化処理などをココに実装
  :
  :
'------------------------------------

解説するとフレームつきページを読み込んだ時の流れはこんな感じ。

BeforeNavigate2(親フレーム) 発生
BeforeNavigate2(子フレーム) 発生
BeforeNavigate2(子フレーム) 発生
BeforeNavigate2(子フレーム) 発生
DocumentComplete(子フレーム) 発生
DocumentComplete(子フレーム) 発生
DocumentComplete(子フレーム) 発生
DocumentComplete(親フレーム) 発生

子は順不同、最初と最後に必ず親フレームのイベントが上がってくる。
この親フレームのイベントを捕まえるには
pDisp Is WebBrowser.Object という条件で
判断が出来るという仕組み。


この様に実装しておくとフレーム分割されたページでも
pDispを使えば最後までドキュメントを読み込んだタイミングを
捕らえることが可能です。


スポンサーサイト
↑参考になったら拍手よろろ

テーマ:プログラミング - ジャンル:コンピュータ

■ この記事に対するコメント

■ この記事に対するコメントの投稿














管理者にだけ表示を許可する。


■ この記事に対するトラックバック
トラックバックURL
→http://croissant3.blog66.fc2.com/tb.php/51-0f125e71
この記事にトラックバックする。(FC2ブログユーザー)
ブログ内検索

RSSフィード

リンク

このブログをリンクに追加する

メールフォーム

名前:
メール:
件名:
本文:



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。