2011-09-23 4 views
1

プログラム上、ページ上のHTML要素をクリックする方法を探しています。ページがブラウザで開かれ、<A>要素をクリックする必要がある場合は、クリックする代わりに、HREFプロパティを取得して、そのURLに移動できます。このアプローチの利点は、Document :: ReadyStateが正しいステータスを返すことです。これを使用すると、ページが完全に読み込まれるまで待つことができます。HTML解析: "onclick"ハンドラを持つ要素をクリックしてもWebブラウザのReadyStateは更新されません

クリックする必要がある要素がonclickハンドラの場合に問題が発生します。これをクリックしても、ReadyStateプロパティまたはDocumentCompletedイベントのステータスは表示されません。この場合、ドキュメントが完全に読み込まれるまで待つ方法。

答えて

0

ドキュメントが読み込まれるまで待つのは難しい問題ですが、ReadyStateとBusy(忘れずに)を継続的にチェックしたいと考えています。また、A要素のhrefを得ることもできますが、DocCompleteやReadyStateを起動しないAをクリックしたときに何が起こるか教えてください。それはなぜですか? JavaScript関数のみを実行するリンクであるはずですか?リンクをたどっている場合は、NavigateErrorイベントを返す場合はDocCompleteイベントを返さない唯一の方法です。我々に教えてください。

また、あなたが待っているページにフレームがある場合は、それらに参照をつけて.busyと.readystateもチェックする必要があります。また、フレームがネストされている場合は、ネストされたフレーム.readystateと.busy同様に、それらの参照を再帰的に取得する関数を記述する必要があります。

ここで、最初に発生したnavigatecompleteイベントは常に先頭のドキュメントであり、最後に発生したdoccompleteイベントは常にトップ(親)ドキュメントのものです。

最初の呼び出しとpDisp Is WebBrowser1.object(文字どおりyoru if文で入力したもの)を確認してから、トップレベルのドキュメントのnavcompleteを確認してから、この同じオブジェクトをドキュメントpDispをグローバル変数に保存して、doc completeが実行され、Doc CompleteのpDispが最初のNavCompleteイベント中に保存したGlobal pDispと等しくなるまで待ってください(グローバルに保存したpDispの場合と同じです起動した最初のNavCompleteイベント)。ですから、pDispがドキュメントの中に返されたことを知ったら、ドキュメント全体の読み込みが完了したことを知っています。

これはあなたのカールの方法を改善しますが、あなたが上記をすべて行ったとしても、90%以上は良いですが100%ばかではないので、フレームをチェックする必要があります証拠は、これ以上のことをする必要があります。

あなたの考えと私の質問に対する明確化を教えてください。

関連する問題