webbrowser 连续执行 事件
比如在三个 按钮里 分别 执行三个事件:
1,打开页面
2,上传图片
3,发布数据在webbrowser中,下一个事件得等上一个事件 执行 完毕后才能执行,,要不就会报错。这个是 那三个事件的代码
procedure TForm1.Button2Click(Sender: TObject); 
var 
  vDocument: IHTMLDocument2; 
begin while WebBrowser1.ReadyState <READYSTATE_COMPLETE do 
Application.ProcessMessages;   vDocument := WebBrowser1.Document as IHTMLDocument2; 
  if not Assigned(vDocument) then Exit; 
  vDocument.parentWindow.execScript( 
'function $(id)'#13#10 + 
'{'#13#10 + 
'    return document.getElementById(id);'#13#10 + 
'}'#13#10 + 
''#13#10 + 
'$("verticalName").value="Products";'#13#10 + 
'$("btnG").click();'#13#10, 
    'javascript'); 
end; 
procedure TForm1.Button3Click(Sender: TObject); 
var 
  vDocument: IHTMLDocument2; 
begin while WebBrowser1.ReadyState <READYSTATE_COMPLETE do 
Application.ProcessMessages;   vDocument := WebBrowser1.Document as IHTMLDocument2; 
  if not Assigned(vDocument) then Exit; 
  vDocument.parentWindow.execScript( 
'function $(id)'#13#10 + 
'{'#13#10 + 
'    return document.getElementById(id);'#13#10 + 
'}'#13#10 + 
''#13#10 + 
'$("offer.title").value="MP3 PLAYER";'#13#10 + 
'$("offer.emailAddressb").checked=true;'#13#10, 
    'javascript'); 
end; procedure TForm1.Button4Click(Sender: TObject); 
var 
  vDocument: IHTMLDocument2; 
begin while WebBrowser1.ReadyState <READYSTATE_COMPLETE do 
Application.ProcessMessages;   vDocument := WebBrowser1.Document as IHTMLDocument2; 
  if not Assigned(vDocument) then Exit; 
  vDocument.parentWindow.execScript( 
'function $(id)'#13#10 + 
'{'#13#10 + 
'    return document.getElementById(id);'#13#10 + 
'}'#13#10 + 
''#13#10 + 
'$("saveAsPublished").click();'#13#10, 
    'javascript'); end; 
你看看,如何放到一个事件里执行啊
要是把这三个代码放到一起来 是不行的,我试了N遍了

解决方案 »

  1.   

    這三個動作都會觸WebBrowser的DownloadComplete 事件,那就從這里出手了,打開頁面后得到了網址 DownloadComplete 完成,就button2.click;上傳文件是在網頁中的沒試過,得自己去多搞幾次了。我沒做過。這只是我的想法   
      

  2.   


    大概只有这个办法了。分析每次DownloadComplete 时的URL,对应的URL执行对应的事件,应该可以的
      

  3.   

    借用下面的事件就可以解决了。
    procedure TForm1.WebBrowser1StatusTextChange(Sender: TObject;
      const Text: WideString);
    begin
    判断“Text”是否为“完毕”
    end;相关代码已经通过QQ发给你。