5

Using webBrowser control in a winForm. but when the webpage is updated by Ajax or in a frame, I cannot use webBrowser1.document.getElementById, etc. to find that htmlElement. The element also won't show in the View->Source code in IE.

The untimate purpose is to find that htmlElement and simulate a click or other function like invokeMember("staff").

4

2 に答える 2

1

WebBrowser の Document オブジェクトは実際に DOM のライブ ビューを表しているため、他の理由で見つからない可能性があります。ただし、DOM の更新は [表示] -> [ソース] には表示されません。DOM のライブ ビューを表示する IE8 の開発者ツールを使用する必要があります。ID が間違っているか、重複しているなどの情報が表示される場合があります。

于 2010-03-18T05:51:55.717 に答える
0

あなたはすでにこの問題を自分で解決していると思いますが、まだ解決していない場合は、私の質問を参照してください: WebBrowser Control and GetElement by ID

基本的に、WebBrowser コントロールに対して何かを行う (つまり、何らかのメンバーを DOM に追加する) 場合、それは非同期的に行われます。つまり、別のスレッドで実行するため、WebBrowser が作業を行っているときに呼び出し元のスレッドがロックされるのを回避できます。問題は、コマンドを使用してプログラムで何かを変更する場合、コマンドの結果を処理できるようになるまで、そのコマンドが変更のロードを実際に完了するまで待たなければならないことです。

私が行っていたことのコード例については、私の質問を確認してください。誰かが私の以前の試験が役立つことを願っています.

于 2012-05-20T22:19:16.190 に答える