ブラウザの特殊な操作 各ブラウザ共通

プログラムで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>

マウス操作で選択内容を変更すればonChangeイベントが発生してhogeメソッドが実行されますが、 プログラムで選択内容を変更しても発生しません。
以下のようにして明示的にイベントを実行させます。

InternetExplorer操作時

InternetExplorer操作でイベントを発生させる方法は2つあります。
1つ目は、各要素のfireEventメソッドを実行する方法です。
引数としてイベント名称を文字列で指定して呼び出せば、そのイベントが発生します。

2つ目は、各要素のdispatchEventメソッドを実行する方法です。 createEventメソッドとinitEventメソッドによりイベントを定義してから、 dispatchEventメソッドでイベントが発生します。
fireEventメソッドの場合は、その要素の直接イベントが定義されないと呼び出せませんが、 dispatchEventメソッドを使う方法なら、外部のJavaScriptにイベントが定義されている場合でも 発生させることができます。

						'下記コードの動作確認はテストページ(https//web.biz-prog.net/test/testpage_jsevent.html)を使っています

						'ボタンのクリックイベントを発生させる
						objIE.Document.getElementById("buttonid1").fireEvent("onclick")
				
						'ボタンのクリックイベントを発生させるその2
						Dim evt = objIE.Document.createEvent("HTMLEvents")
						evt.initEvent("click", False, True)
						objIE.Document.getElementById("buttonid1").dispatchEvent(evt)   'イベントを発生させる
				
						'セレクトボックスにoncahngeイベントを発生させる
						objIE.Document.getElementsByName("selectname")(0).fireEvent("onchange")
				
						'セレクトボックスにoncahngeイベントを発生させる2
						Dim evt2 = objIE.Document.createEvent("HTMLEvents")
						evt2.initEvent("change", False, True)
						objIE.Document.getElementsByName("selectname")(0).dispatchEvent(evt2)   'イベントを発生させる
					
						//下記コードの動作確認はテストページ(https://web.biz-prog.net/test/testpage_jsevent.html)を使っています

						//ボタンのクリックイベントを発生させる
						objIE.Document.getElementById("buttonid1").fireEvent("onclick");
			
						//ボタンのクリックイベントを発生させるその2
						var evt = objIE.Document.createEvent("HTMLEvents");
						evt.initEvent("click", false, true);
						objIE.Document.getElementById("buttonid1").dispatchEvent(evt);   //イベントを発生させる
			
						//セレクトボックスにoncahngeイベントを発生させる
						objIE.Document.getElementsByName("selectname")(0).fireEvent("onchange");
			
						//セレクトボックスにoncahngeイベントを発生させる2
						var evt2 = objIE.Document.createEvent("HTMLEvents");
						evt2.initEvent("change", false, true);
						objIE.Document.getElementsByName("selectname")(0).dispatchEvent(evt2);   //イベントを発生させる
					
						objIE.Document.GetElementsById("selectbox").fireEvent ("onchange")
					

参考