WebBrower(.NET) 応用テクニック
JavaScriptのプログラムを実行する
Webページに対してJavaScript関数の実行や任意のJavaScriptコードの実行を行う方法です。
WebBrowserコントロール使用時
Navigateメソッドに、URLではなくJavaScriptのコードを直接渡せば実行されます。
文字列の頭に"javascript:"をつけてください。
別の方法として、Document.InvokeScriptメソッドを使います。
このメソッドはJavaScript関数を実行します。
また、InvokeScriptメソッドのJavaScript関数に"eval"を指定することで、任意のJavaScriptコードを実行することができます。
'下記コードの動作確認はテストページ(https://web.biz-prog.net/test/testpage_jsevent.html)を使っています
Private Sub btnWBjsexe_Click(sender As Object, e As EventArgs) Handles btnWBjsexe.Click
'JavaScriptのコードを実行
Dim js As New System.Text.StringBuilder()
js.AppendLine("function alertdisp(message) {")
js.AppendLine(" alert(message);")
js.AppendLine("}")
js.AppendLine("alertdisp('test');")
webBrowser1.Navigate("javascript:" + Uri.EscapeDataString(js.ToString()) + ";")
'JavaScriptのコードを実行 その2
webBrowser1.Document.InvokeScript("eval", New String() {js.ToString()})
End Sub
Private Sub btnWBjsexe2_Click(sender As Object, e As EventArgs) Handles btnWBjsexe2.Click
'HTML中のJavaScript関数を実行する
webBrowser1.Navigate("javascript:jsFunc();")
Application.DoEvents() 'これがないと仕組み的に後ろで実行されてしまう
'HTML中のJavaScript関数を実行する その2
webBrowser1.Document.InvokeScript("jsFunc")
'HTML中のJavaScript関数を実行する その2 関数に引数を指定する
webBrowser1.Document.InvokeScript("jsFunc2", New String() {"a", "b"})
End Sub
//下記コードの動作確認はテストページ(https://web.biz-prog.net/test/testpage_jsevent.html)を使っています
private void btnWBjsexe_Click(object sender, EventArgs e)
{
//JavaScriptのコードを実行
System.Text.StringBuilder js = new System.Text.StringBuilder();
js.AppendLine("function alertdisp(message) {");
js.AppendLine(" alert(message);");
js.AppendLine("}");
js.AppendLine("alertdisp('test');");
webBrowser1.Navigate("javascript:" + Uri.EscapeDataString(js.ToString()) + ";");
//JavaScriptのコードを実行 その2
webBrowser1.Document.InvokeScript("eval", new string[] { js.ToString() });
}
private void btnWBjsexe2_Click(object sender, EventArgs e)
{
//HTML中のJavaScript関数を実行する
webBrowser1.Navigate("javascript:jsFunc();");
Application.DoEvents(); //これがないと仕組み的に後ろで実行されてしまう
//HTML中のJavaScript関数を実行する その2
webBrowser1.Document.InvokeScript("jsFunc");
//HTML中のJavaScript関数を実行する その2 関数に引数を指定する
webBrowser1.Document.InvokeScript("jsFunc2", new string[] { "a", "b" });
}
