- - PR -
WebBrowser コントロールを使用し、URL を見ずにどの frame かを識別することは可能ですか?
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-03-13 01:51
アンマネージドポインタからフレームを特定しようと試みましたが無駄でした。
というか、摩訶不思議なんですが、DocumentCompleted イベントの第一パラメータ がなぜ WebBrowser なのか・・・HtmlWindow じゃないからどーしょーも無い、 と思いつつも、Navigating の TargetFrameName で判定、ちゅーても、名前が未設定 ならこれまたどーしょーもない。 たぶん、Navigating の Url をハッシュマップに登録する際、同一エントリがあるので 値をカウントする。 DocumentCompletedのUrl でハッシュマップから削除、但しカウント減算結果が0の時 のみ。 ハッシュマップのエントリ数が0の時が処理を走らせるタイミング。 うーん、indogo-x さんと同じようで別のような、良く分かりません。 | ||||||||
|
投稿日時: 2008-03-13 02:56
こんな感じで、やってみたら、www.google.com/ が http://www.google.co.jp/ に変換 されて、辻褄が合わなくなってしまった。 上の実行結果がコレ、HTML は以前掲載したもの。
ってことで、NAVI と LOAD の数の比較と、辻褄合わない(リダイレクトされて 指定されたURIが変化するような形式)場合は、WebClient かなんか使って、個別 に対応するとか、しきい値でもって、URIの80%以上マッチ or 部分文字列マッチなら、 どーこーするとか。 リダイレクトと GET パラメータに別のURI指定するようなタイプが厄介ですね。 [ メッセージ編集済み 編集者: ぴあちゃん 編集日時 2008-03-13 02:58 ] | ||||||||
|
投稿日時: 2008-03-13 06:39
>ぴあちゃん(さん)
やはり難しい感じがありますね。 発想を変えないと行けない感じですね。。。。 | ||||||||
|
投稿日時: 2008-03-14 02:45
みなさまありがとうございます。
ふと ReadyState プロパティーを使ってみたところ、どうやらこれを使うべきのようです。 たとえば、
のようにすると、目論見どおりに動く感じです。 フレームごとのイベントでは Interactive の状態であり、すべて完了すると Complete になるようです。 私は、今まで、ReadyState プロパティーは、イベント駆動のプログラムではなく簡易的なポーリングで動かすようなプログラムのためだけに存在しているものかと思っていました。しかし、DocumentCompleted のようなイベントと組み合わせて使うためにも存在しているようです。 | ||||||||
|
投稿日時: 2008-03-14 08:42
うまくいきましたか
私もそう思ってました。 なんでもやってみないとわからないものですね。 |