<A 
onclick="javascript:url_link('../DutyPage/DutySend.aspx?si=FEE92689-9EC3-C4E0-9ADE-DE05C9071C06    &amp;du=370aa11909844f679b386ac18542e1c6&amp;apidos=795010')" 
href="javascript:void(0);"><FONT 
color=#ff0000>执行</FONT></A></LI></UL></DIV></DIV>这“执行”是超链接文字,我要用DELPHI的WEBBROWSER控件显示出当前页面后模拟自动点击这2字,请知道的朋友提供控制代码!谢谢!

解决方案 »

  1.   

     begin   
          with   (WebBrowser1.Document   as   IHTMLDocument2).body.all   as   
              IHTMLElementCollection   do   
              for   I   :=   0   to   length   -   1   do   
                  with   item(I,   I)   as   IHTMLElement   do   
                      if   SameText(tagName,   'a')   then   
                          with   item(I,   I)   as   IHTMLAnchorElement   do   
                              if   SameText(href,   'http://www.csdn.net/')   then   click;   
      end;
      

  2.   

    好像执行只是在文字上加了个ONCLICK的动作,并不是真正意义上的超链接,所以通过TAGNAME是找不到执行这两个字的,楼上的方法试了没用…………能不能有代码直接点击执行2个字的?
      

  3.   

    这样试试
     WebBrowser1.Navigate('javascript:url_link(''参数'');javascript:vote(0)');
      

  4.   

    参数是由上一界面过来以后自动生成的,../DutyPage/DutySend.aspx?si=FEE92689-9EC3-C4E0-9ADE-DE05C9071C06    &amp;du=370aa11909844f679b386ac18542e1c6&amp;apidos=795010'这些参数是自动生成的。唯一的线索就是————总之能点“执行”2字就可以了,前面怎么从上一界面过来我已经完成了。
      

  5.   

    可以不用点“执行”,直接执行javascript效果是相等的,当然你要构建好参数。
      

  6.   

    对的,你看几段我的源代码
    vDocument := WebBrowser1.Document as IHTMLDocument2;
        vDocument.parentWindow.execScript('document.getElementsByName("ids")[0].checked=true','javascript');
        astring:='flotaStep_first('+'''../GameTools/flotaStep_two.aspx?apidos=795010'''+')';
         vDocument.parentWindow.execScript(astring,'javascript');我知道直接执行JS的办法,我分析过页面的源文件,但是由于“执行”所在页面是fromobjs.innerHTML内嵌框架,读不出源代码,只有模拟按“执行”2个字可以达到目的,请你想想办法怎么点击这2字
      

  7.   

        Docs := Web.OleObject.Document;
        Docs := Docs.GetElementByID('AddCont').ContentWindow.Document; //<--'AddCont' Frame名称
        ovElements := Docs.GetElementByID('imgbtn4');
        ovElements.Click;
      

  8.   

    GetElementByID是根据ID获得对象的,”出征“这2字不作为对象,没有ID,程序运行不成功的………………………………
    不好意思,请问你还有没有办法………………
      

  9.   

    还有一个笨办法,可以用idhttp.get方法,就网页下载下来,找到链接用webbrowser.navigate
      

  10.   

    我觉得这个问题你完全可以自己尝试解决,因为知识点都在了,自己组合一下就Ok。
    思路大致如下:  Docs := Web.OleObject.Document; 
      Docs := Docs.GetElementByID('AddCont').ContentWindow.Document;  //<--到达iFrame//-->自己组织一下,在iFrame里面寻找自己要的超链接  begin  
          with  (WebBrowser1.Document  as  IHTMLDocument2).body.all  as  
              IHTMLElementCollection  do  
              for  I  :=  0  to  length  -  1  do  
                  with  item(I,  I)  as  IHTMLElement  do  
                      if  SameText(tagName,  'a')  then  
                          with  item(I,  I)  as  IHTMLAnchorElement  do  
                              if  SameText(href,  'http://www.csdn.net/')  then  click;  
      end;
      

  11.   

    <A 
    onclick="javascript:url_link('../DutyPage/DutySend.aspx?si=FEE92689-9EC3-C4E0-9ADE-DE05C9071C06    &amp;du=370aa11909844f679b386ac18542e1c6&amp;apidos=795010')" 
    href="javascript:void(0);"> <FONT 
    color=#ff0000>执行 </FONT> </A> </LI> </UL> </DIV> </DIV> 
    首先这个不是超链接,是点击事件,用SameText(href,  'http://www.csdn.net/') 是用来寻找href超链接的,晕~~~~~~~我都不知道哪理解错了,可以发我消息告诉我你的QQ吗?我们谈谈,谢谢,这个贴也是我的,100分,都给你!
    http://topic.csdn.net/u/20080624/12/c1d0236f-01c3-4225-bece-6467bac93fdb.html