No.2ベストアンサー
- 回答日時:
こんにちは
WebBrowserコントロールを使うとjavascriptを自由に実行して、値を取得できますが WebBrowserコントロールが使えない場合は少し時間がかかりますね。
WebBrowserコントロールを使ったサンプルです。
下記のhtmlから値を取得する場合です。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form name="js">
<input type ="text"id="n1" name="t1" value="" />
<input type="text" id="n2" name="t2" value="" />
<input type="button" id="n3" name="b" value="値" onclick="st()"/>
</form>
<script type="text/javascript">
function st() {
document.js.t1.value = "テスト1"
document.js.t2.value = "テスト2"
}
</script>
</body>
</html>
#簡単にするために各inputにidを付けていますので、idを手がかりにInvokeMember("click")でボタンをクリックしてjavascriptを実行します。
#input type="text"に値が表示されますので、GetAttribute("value")でinputの値を取得します。
#idの値を手がかりにしてinputの値を取得してListBox1に表示します。
Public Class Form1
Dim ur As String = "http://~~~~l"
Private Sub f() Handles MyBase.Shown
WebBrowser1.Navigate(ur)
WebBrowser1.Visible = False 'WebBrowser1を非表示にする
End Sub
Private Sub WebBrowser1_DocumentCompleted(sender As System.Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
ListBox1.Items.Clear()
Dim txt1 As String
Dim txt2 As String
If sender.url.ToString = e.Url.ToString Then
'ボタンをクリックしてjavascriptを実行
WebBrowser1.Document.GetElementById("n3").InvokeMember("click")
'inputに値を入力
txt1 = WebBrowser1.Document.GetElementById("n1").GetAttribute("value")
txt2 = WebBrowser1.Document.GetElementById("n2").GetAttribute("value")
Dim wre As Net.WebRequest = Net.WebRequest.Create(ur)
Dim wrs As Net.WebResponse = wre.GetResponse()
Dim st As IO.Stream = wrs.GetResponseStream()
Dim reader As New System.IO.StreamReader(st)
Dim line As String
line = reader.ReadLine
Do Until IsNothing(line)
'idの値を手がかりにしてinputの値を取得してListBox1に表示
If line.Contains("id=""n1""") Then
ListBox1.Items.Add(txt1)
ElseIf line.Contains("id=""n2""") Then
ListBox1.Items.Add(txt2)
End If
line = reader.ReadLine
Loop
reader.Close()
End If
End Sub
End Class
この回答へのお礼
お礼日時:2013/04/22 14:38
質問の書き方が悪かったようですいません。
javascriptがタイマーで定期的に自動更新する値を取得したいという事だったのです。
この場合WebBrowserを使えばもちろん取得できます。
しかしWebBrowserは遅くて重いため使いたくなかったので・・・
ありがとうございました。
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
- MySQL htmlコードで書かれた表にphpでdbから取得した値を挿入したい 3 2022/12/21 23:48
- JavaScript HTMLでJavaScriptを使用してプログラムを作ります。 入力されたパスワードを取得して、パス 2 2022/10/18 01:05
- Instagram HTML5の廃止とJavaScript 2 2022/04/13 21:05
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- JavaScript テーブルの中のセレクトボックスの値が0のとき、非表示にしたい 3 2022/05/29 10:13
- その他(プログラミング・Web制作) pythonでDBのカラム名で取得したオブジェクトの値を表示したい 1 2022/05/13 03:41
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
Excel vba ユーザーフォームテ...
-
Excel VBA 複数選択したリスト...
-
テキストボックスの値をコンボ...
-
VB初心者。小数点以下の表示で...
-
マクロ 特定のセル値のみクリ...
-
if ( fp == NULL ){ を if ( f...
-
ComboBoxの初期値をコピーする方法
-
VBプログラム エラーが出ます
-
エクセルVBAでコンボボックスの...
-
変数名の取得
-
refreshでパラメータ引継ぎ
-
コンボボックスの値がうまく取...
-
【デバッグ】変数の値が変わる...
-
オペランド
-
W10環境変数の%記号
-
シーケンサで最小値を保持する
-
画面のフィールドの値を共通処...
-
検索エンジンにかからないサイ...
-
ComboBoxとListBoxとの連動
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
ハッシュテーブル(連想配列)が...
-
Excel VBAのリストボックスの値...
-
マクロ 特定のセル値のみクリ...
-
PysimpleGUIでデータベースを作る
-
VB.NETでコンボボックスの1行目...
-
変数名の取得
-
power BI クエリエディター 〇...
-
VB初心者。小数点以下の表示で...
-
PL/SQLでのTO_DATEの時間取得に...
-
【C++/CLI.NET】コンボボックス...
-
値を返さないコード パス
-
Powershellのparamについて
-
Excel VBA 複数選択したリスト...
-
DataTableに対するLINQについて
-
ユーザーフォームのテキストボ...
-
C# get set
-
変数に代入してある数値を表示...
-
VBAでWEB上の入力項目に値をい...
-
VB.NETでアクティブなformを知...
おすすめ情報