我用Twebbrowser打开一个网页,该网页的提交为<form id="form1" action="/play/pg28InsertDo.aspx" method="post" onsubmit="return chgsubmit();">现在这个网页的chgsubmit函数字义了javascript的confirm对话框,很是麻烦。我的问题主要如下:
1、如何用Delphi直接提交,不通过这个chgsubmit()函数?
2、如果不行,怎样跳过confirm,也就是说,直接让confirm返回true?
3、如果还是不行,那就只有模拟点击了。请问怎样获得Twebbrowser弹出的confirm对话框的句柄,向它的默认按钮“确认”发一个点击,好像空格和回车也可以?

解决方案 »

  1.   

    补充说明一下,我是想编一个自动打开网页的软件,自动操作一些内容。可是对于这个javascript的confirm弹出对话框没有办法自动确认了,请大家帮忙。
      

  2.   

    模拟点击hform:IHTMLFormelement;
    dispatch:IDispatch;
    hall:ihtmlelementcollection;
    I:Integer;hall:=(webbrowser1.document as Ihtmldocument2).get_all;
    dispatch:=hall.item(I,0);
    if succeeded(dispatch.QueryInterface(IHTMLFormElement,hform)) Then Hform.submit;
      

  3.   

    谢谢大家的回答。我是用Twebbrowser打开网页,并从网页源代码里取一些数据,然后在网页里填写一些内容,现在自动点击用获取窗口句柄并发送回车键解决了。不过现在问题又来了,我在Timer里设置每分钟运行一次,可是它为什么有时候运行,有时候不运行呢。难道Webbrowser有我不知道的毛病,我程序里设计了等待网页完全打开,也设计了如果打不开的办法。有一次 ,我离开了,程序就一直不运行,等我回来,它就自动运行了一次,郁闷死了。
      

  4.   

    new一个线程吧,我一般不用timer。
      

  5.   

    谢谢大家回复。我知道怎么回事了,是因为Twebbrowser不刷新,不能及时读到更新的网上数据。问题解决了,每个人都加点分吧。还剩一些分,大家能不能给个最小化为托盘的控件的下载地址和用法?