C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: webBrowserコントロールでDHTMLの取得について


(過去ログ 85 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■50946 / inTopicNo.1)  webBrowserコントロールでDHTMLの取得について
  
□投稿者/ たか (75回)-(2010/06/22(Tue) 15:56:55)

分類:[.NET 全般] 

連投ですみません。

最近のWEBページはAjaxを使って動的にコンテンツの内容を書き換えるページも増えてきました。
そういうページをWebBrowserコントロールを使って読み込み WebBrowser.Document経由でアクセスしても
ブラウザ表示時点での値しか取得できません。
これを現在表示されている内容を取得する方法ってないでしょうか?


たとえば以下は時計を表示するサンプルですがWebBrowser.Document.getElementById("clock")とアクセスしても
初期表示(空の状態)が取得されてしまいます。
(実際には2010年6月22日 15:53:23などと表示されている)
<html><head>
<script type="text/javascript">
function disp(){
  var now = new Date();
  document.getElementById("clock").innerHTML = now.toLocaleString();;
  setTimeout("disp()", 1000);
}
</script>
</head><body onLoad="disp()">
<DIV id="clock"></DIV>
</body></html>


ちなみにJavaScript使えば現在値を取得できますが 仮にJavaScriptで取得しても今度はその結果をC#側に渡すのはどうしよう?ってことで悩みます。
中間にサーバーを介して Javascript→サーバーにPOST→サーバー経由で取得とかならできますが スマートじゃないし・・・


何かいい方法あったら教えてください。


引用返信 編集キー/
■50954 / inTopicNo.2)  Re[1]: webBrowserコントロールでDHTMLの取得について
□投稿者/ たか (76回)-(2010/06/22(Tue) 16:16:46)
書き込み直後にふと思いついて調べてみたら JavaScriptからファイルの書き込みは一応できるのか・・・
(ActiveXコントロール使うのでセキュリティの警告は出そうだけど)
サーバー介すよりはローカルファイル介す方がまだ現実的ではあるな、と自己レス
どちらにせよスマートではないのでやりたくないけど 方法がなければ最後の手段として・・・
http://okwave.jp/qa/q603713.html


引き続き正攻法での対処方法を募集中ですのでよろしくお願いします。
引用返信 編集キー/
■50957 / inTopicNo.3)  Re[2]: webBrowserコントロールでDHTMLの取得について
□投稿者/ マサヤ (44回)-(2010/06/22(Tue) 16:28:47)
hidden項目を作成して取得したらいかがでしょうか?
引用返信 編集キー/
■50958 / inTopicNo.4)  Re[2]: webBrowserコントロールでDHTMLの取得について
□投稿者/ todo (14回)-(2010/06/22(Tue) 16:28:50)
WebBrowser.Document.DomDocumentをmshtmlにキャストすれば、JavaScriptと同じようにDOMを扱えると思います。
引用返信 編集キー/
■50964 / inTopicNo.5)  Re[3]: webBrowserコントロールでDHTMLの取得について
□投稿者/ たか (77回)-(2010/06/22(Tue) 16:57:38)
ごめんなさい。自己レスです。

結論から言うとwebBrowser.Documentで普通にアクセスして値の取得がでいました。
最初テストしてダメだったのはバグのせいでした(汗
System.Threading.Thread.Sleepで5秒待ってからwebBrowser.Documentで取得、、、しても初期状態のままだったので取得できない、と勘違いしたのですが
スリープしてるからJavaScriptの処理もスリープしてしまい処理されてなかったようです(大汗
スレッドをスリープしてるんだから言われてみるとその通りなのですが 完全に無理だって思い込んでしまいました。

お騒がせしてごめんなさい。

>マサヤさん
というわけでお騒がせしてすみませんでした。
ありがとうございます。


>todoさん
ありがとうございます。
こちら勉強になりました。JavaScriptは得意なので使う機会がありそうです。


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -