かぶだいくんのオリックス証券対応
オリックス証券のサイトに、つぎのようなドロップダウンリストボックスがある。
<select name="foo" onchange="setHoge()"> <option value="10">10</option> <option value="20" selected="selected">20</option> <option value="30">30</option> </select>
これのデフォルトじゃない 10 や 30 を選択して、onchange で設定されている setHoge() を呼びたいが、うまく行かない。呼べない。呼んでくれないのだ。
HtmlElementCollection selectElements = barForm.GetElementsByTagName("select"); HtmlElement selectElement = selectElements["foo"]; HtmlElementCollection options = selectElement.GetElementsByTagName("option"); // やりかた(a) options[2].SetAttribute("selected", "true"); // やりかた(b) selectElement.SetAttribute("selectedIndex", "2");
(a)も(b)も、選択状態は変わってくれるが、JavaScript のイベントハンドラーが呼ばれない。
ドロップダウンリストボックスだけの問題なのかそれとも JavaScript 全般の問題なのかも、今のところ不明だ。
ボタンだったら InvokeMember("click") で良いのだが、オリックス証券のサイトはボタンがなく、ドロップダウンリストボックスの onchange でしか動かす手段がないので困っている。まあ、ドロップダウンリストの使い方をそんな感じにしているところはここに限らずたくさんあるけど。