WebBrowserコントロールによるブラウザ/HTMLイベント処理
プログラムでHTML要素のイベントを発生させてJavaScriptを実行する
HTML要素に定義されたイベントをプログラムにより発生させて、イベントに定義されているJavaScriptを実行します。
例えば、
<input type="button" onclick="alert('ボタン1を押下')" />
のようなHTMLであれば、プログラムでonclickイベントを発生させます。
また、SelectタグにおいてはプログラムでOptionを選択してもonchangeイベントが発生しませんので、
明示的にイベントを発行させる必要があります。
例えば下記のようなHTMLの場合、
<select id="selectbox" onChange="hoge();">
<option value="opt1">opt1</option>
<option value="opt2">opt2</option>
</select>
<option value="opt1">opt1</option>
<option value="opt2">opt2</option>
</select>
マウス操作で選択内容を変更すればonChangeイベントが発生してhogeメソッドが実行されますが、
プログラムで選択内容を変更しても発生しません。
以下のようにして明示的にイベントを実行させます。
WebBrowserコントロール使用時
WebBrowserコントロールでイベントを発生させるにはRaiseEventメソッドを使います。
引数としてイベント名称を文字列で指定して呼び出せば、そのイベントが発生します。
'下記コードの動作確認はテストページ(https//web.biz-prog.net/test/testpage_jsevent.html)を使っています 'ボタンのクリックイベントを発生させる webBrowser1.Document.GetElementById("buttonid1").RaiseEvent("onclick") 'セレクトボックスにoncahngeイベントを発生させる webBrowser1.Document.All.GetElementsByName("selectname")(0).RaiseEvent("onchange")
//下記コードの動作確認はテストページ(https://web.biz-prog.net/test/testpage_jsevent.html)を使っています //ボタンのクリックイベントを発生させる webBrowser1.Document.GetElementById("buttonid1").RaiseEvent("onclick"); //セレクトボックスにoncahngeイベントを発生させる webBrowser1.Document.All.GetElementsByName("selectname")[0].RaiseEvent("onchange");
WebBrowser1.Document.GetElementsById("selectbox").fireEvent ("onchange")