• ベストアンサー

webbrowserでのjavascriptを含むソース取得

webbrowserでのjavascriptを含むソース取得 お世話になっております。 VB 2005を利用しています。 webbrowserを用いてHTMLソースの表示をしようと、 WebBrowser1.Document.Body.OuterHtml と記述したところ、javascriptのソースが表示されません。 同じサイトをIEのソースで表示すると問題なく表示できます。 HttpWebRequest を用いたソースの取得方法はわかるのですが、 事情があって、webbrowser上から行いたいのです。 よろしくアドバイスの程お願いいたします。

  • myart
  • お礼率69% (18/26)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

'まぁ一応できるっぽいな Option Explicit On Option Strict On Option Compare Binary 'Option Infer Off Public Class MyApp Inherits System.Windows.Forms.Form Private wb As System.Windows.Forms.Webbrowser Public Shared Sub Main() Dim x As MyApp x = New MyApp() x.ShowDialog() End Sub Public Sub New() wb = New System.Windows.Forms.Webbrowser Me.Controls.Add(wb) AddHandler wb.DocumentCompleted,AddressOf Me.wb_DocumentCompleted wb.Navigate("http://oshiete1.goo.ne.jp/qa5782372.html") End Sub Private Sub wb_DocumentCompleted(ByVal sender As Object,ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Dim sr As System.IO.StreamReader = new System.IO.StreamReader(wb.DocumentStream,System.Text.Encoding.GetEncoding(51932)) System.Console.WriteLine(sr.ReadToEnd()) '何故か化ける 'System.Console.WriteLine(wb.DocumentText) End Sub End Class

myart
質問者

お礼

javascriptがはき出したHTMLソースが見れないのは、時間の問題でした。 おそらくjavascriptの内部処理に時間がかかっているため、ソース生成に 時間がかかったのでしょう。 一定時間待てば、教えていただいた方法で無事に見ることができました。 また、webbrowser1.document.body.outerhtml でも、所定の時間を待てば 見ることができました。 これをもって、この質問はクローズさせていただきます。 ありがとうございました。

myart
質問者

補足

アドバイスありがとうございます。 ただ、残念ながらこの方法では、javascriptソースそのものが見えてしまいます。 元のjavascriptソースを表示するのではなく、javascriptがはき出したHTMLソースを 見たいと考えております。 こういう観点で再度アドバイスよろしくお願いいたします。

関連するQ&A

  • WebBrowser で JavaScript を見るには

    お世話になっています。 インターネットエクスプローラで、 表示 - ソース とすると <script language="JavaScript"> と言う記述の下に ソースコードを見ることができますが、 WebBrowser で WebBrowser.Document.Body とか WebBrowser.Document.OuterHTML とかしても、 ソースコードを見ることができないのです。 見る方法について教えて下さい。 補足 Internet Explorer Version 6.0 言語は Visual Basic 6.0 がいいですが、 C++ でもいいです。よろしくお願いします。

  • WebBrowserに表示されているページのソースの取得方法

    RichTextBox1.Text =WebBrowser1.Document.body.innertext とすれば表示されている文字は取得できるのですがタグ付きのソースは 取得できません。 webBrowserコントロールに表示されている文字だけでなくタグもいっしょに 取得するにはどうすればよいのでしょうか

  • WebBrowserにてCSVを取得したい

    WebBrowserにてCSVを取得したい vb.net(VS2008) にて、WebBrowserを利用して指定のURLからCSVをダウンロードしたいのですが、ダウンロードするダイアログまたはエクセルがWebBrowser内に表示されてしまいます。 単純に、WebBrowserに表示して、DocumentCompleted 時にDocumentとして取得したいのです。 もしくは、ファイル名を予め指定してダウンロードでも問題ありません HttpWebRequest,WebClientによる取得は、 SSLクライアント認証などの公開キーに基づく認証方式が必要なサイトのため、できませんでした。 ダイアログ、エクセルが起動せずに取得出来る方法がありましたら、教えていただけないでしょうか? よろしくお願いします。

  • iframeのソースを取得

    iframeのsrcのソースを取得する方法を教えて下さい。 下のソースのcld.document.sourceの所が知りたいです。 body.outerHTMLでbodyの中なら得られますがそうではなくて、<html>から</html>を取得して、それを加工して表示しようというものです。 <iframe id=cld src=cld.html></iframe> <script language="JavaScript"> cldsource = cld.document.source; if(cldsource.substr(... ... </script>

  • VB2005ExpressEditionで、WebBrowserを作っていますが、ソースを・・

     VB2005ExpressEditionで、WebBrowserを作っていますが、ソースをボタンを押すとソースを表示させるようなことはできますか?  つまり、HTMLのなかの「<」,「>」を「&lt;」, 「&gt;」に置き換えることができればいいのですが・・・

  • WebBrowserコントロールでの印刷

    VBのWebBrowserコントロールを使ってHTMLドキュメントの印刷を行う アプリケーションを作っています。 WebBrowser1.ExecWB OLECMDID_PRINT,0 と書くと印刷はできますがヘッダーとフッダーが印刷されてしまいます。 IEの設定を変えると表示されなくなりますが、VBのコード上からここら辺を制御する方法がわかりません。 どなたか分かる方教えてください。 お願いいたします。

  • JavaScriptで動くページの実行結果をVBで取得する方法

    JavaScriptで動くページの実行結果をVBで取得する方法を教えて頂きたいです。 現在WebBrowserやIEを別途起動して、それに対象のページを表示して コントロールに数字なり文字を入力、送信で 返ってきた結果をHTMLのDocument内から探し出しているのですが、 直接、HTTP?を送受信するなどの方法でやり取りすることは出来ないでしょうか? VB.NET2003+FrameWorks1.1+WindowsXP-PRO環境です。 よろしくお願い致します。

  • JavaScript で HTML ソース取得

    [環境:とりあえず WinXP/Firefox12] JavaScript で HTML ソースを取得できないかと思っているのですが、 document.getElementsByTagName('html')[0].innerHTML では思うものが取得できませんでした。 というのは、 たとえば BODY の閉じタグが欠落しているようなソースに対して上記スクリプトで取得すると BODY の閉じタグが補完されたものが返ってきたのですが、 閉じタグが欠落したままのものが欲しいのです。 可能でしょうか…。 【理由】 Firefox のアドオン Selenium IDE を利用して、 Perl で作成した Web 画面のテストを行っています。 処理が正常に終了した場合はきちんと BODY の閉じタグまで出力するのですが、 途中で想定していない例外が起きた場合はその場で die して終了するようになっています。 この時に BODY の閉じタグが欠落した状態になるので、 途中で die されたかどうかの判断の為に BODY の閉じタグの有無が知りたいのです。 なので JavaScript でなくても 「IDE 上で BODY の閉じタグの存在チェック」ができる方法があればそちらでも良いのですが… どなたかご存知の方いらっしゃいますでしょうか。 宜しくお願いします。

  • WebBrowserでHtmlを取得

    WebBrowserでHtmlを取得する方法をおしえてください フォーム上に、WebBrowser1、TextBox1、Button1を配置しています。 TextBox1にHtmlを表示し、Button1は、WebBrowser1に表示している WEBページを更新します。 やりたい事  (1)フォームを開いた時に、URLで指定したWEBページを表示させ   TextBox1にHtmlを表示させる。  (2)Button1をクリックした時、表示しているWEBページを更新する。   更新後のHtmlをTextBox1に表示させる。  (3)TextBox1の表示が完了したらHtmlを処理する。(未着手) 現在、(1)は動作するのですが、(2)が動作しません(TextBox1のHtmlが更新されない) Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load WebBrowser1.Navigate(オッズURL):webcompflag = False Do While (webcompflag = False) System.Windows.Forms.Application.DoEvents() System.Threading.Thread.Sleep(10) Loop TextBox1.Text = WebBrowser1.Document.Body.InnerHtml End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TextBox1.Text = "" If Not WebBrowser1.Url.Equals("about:blank") Then WebBrowser1.Refresh() : webcompflag = False Do While (webcompflag = False) System.Windows.Forms.Application.DoEvents() System.Threading.Thread.Sleep(10) Loop TextBox1.Text = WebBrowser1.Document.Body.InnerHtml End Sub 何がいけないのか分かりません よろしくお願いします。

  • 続:IEの操作で新ページのソース取得方法は?

    「VBによりIEでページを表示させ、そのページから新しいページに移動させたとき、その新ページのHTMLのDocument取得方法をご教示頂きたくお願いします。」と先に質問し下記の回答を頂きました。   HTMLタグ付きなら   WebBrowser1.Document.body.innerHTML   だったと思います。 最初に表示させたページの制御には、次のようにしました。   objIE.Document.All("ACCOUNT").Value = "xxxx"   objIE.Document.All("PASSwd").Value = "yyyy"   objIE.Document.All("btn").Click 新しいページに対しても最初のページと同じようにして制御出来るようにするにはどうすればよろしいのでしょうか? 初心者で、最初の質問は中途半端でした。よろしくお願いします。

専門家に質問してみよう