有一网页上有两个按钮,其中一个的HTML如下:<INPUT class=yes onclick="return SubChk();" type=button value=確定 name=Submit>,这个按钮定义了onclick事件,因此可以先用QueryInterface取得IHTMLInputButtonElement接口再调用click模拟点击。
但第二个按钮的HTML如下:<INPUT class=yes onmousedown=Sure_wager(); type=button value=確定 name=wgSubmit>,这个按钮没有定义onclick事件,只定义了一个onmousedown事件,我应该怎样模拟点击它呢?
(TWebBrowser)

解决方案 »

  1.   

    用了一个笨办法解决了
    btdispHtmlInput := bthtmlInput as DispIHTMLInputButtonElement;
    btdispHtmlInput.onclick := btdispHtmlInput.onmousedown;
    btdispHtmlInput.click;
      

  2.   

    private void executeOnChangeHandler(string elementName)
            {
                object objBody = webbrowser1.Document.GetType().InvokeMember("body",
                    System.Reflection.BindingFlags.GetProperty, null, webbrowser1.Document,
                    new object[] { });
                mshtml.IHTMLElement elmBody = (mshtml.IHTMLElement)objBody;
                mshtml.IHTMLElementCollection elmsAll =
                    (mshtml.IHTMLElementCollection)elmBody.all;
                mshtml.HTMLSelectElementClass element =
                    (mshtml.HTMLSelectElementClass)elmsAll.item(elementName, null);            if(element.onchange != DBNull.Value)
                {
                    IHTMLElement e = element as IHTMLElement;
                    IHTMLDocument4 doc = e.document as IHTMLDocument4;
                    object dummy = null;
                    object eventObj = doc.CreateEventObject(ref dummy);
                    HTMLSelectElementClass se = element as HTMLSelectElementClass;
                    se.FireEvent("onchange", ref eventObj);
                }
            }