如何正确使用c#WebBrowser调用脚本?

时间:2018-09-04 22:36:04

标签: javascript c# html webbrowser-control invokescript

所以基本上我知道了:

<select name="ctl00$cp$cbRodzajUslugi" onchange="javascript:setTimeout(&#39;__doPostBack(\&#39;ctl00$cp$cbRodzajUslugi\&#39;,\&#39;\&#39;)&#39;, 0)" id="cp_cbRodzajUslugi" style="width:200px;">
                                    <option selected="selected" value="-1"></option>
                                    <option value="708">708</option>
                                    <option value="1156">1156</option>
                                    <option value="1157">1157</option>

                                </select>

我要做的是以编程方式选择除-1值以外的选项之一,然后运行“ onchange”脚本。所以到目前为止,我有:

        HtmlElement selectType = mDoc.GetElementById("cp_cbRodzajUslugi");
        var selectTypeChildren = mDoc.GetElementById("cp_cbRodzajUslugi").Children;
        foreach (HtmlElement selectTypeItem in selectTypeChildren)
        {

            if (selectTypeItem.GetAttribute("value") == "1157")
            {
                selectTypeItem.SetAttribute("selected", "selected");
            }
        }
        object[] args = { selectType.Name };
        mDoc.InvokeScript("__doPostBack", args);

在此之后,DocumentCompleted事件不会触发。有趣的事实是,当我手动将selected="selected"添加到其中一个选项,然后在Chrome的F12菜单中运行__doPostBack("ctl00$cp$cbRodzajUslugi", "")脚本时,效果很好。

我在这里做错了什么? InvokeMember("onchange")也不起作用。.

0 个答案:

没有答案