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,打开页面
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遍了
大概只有这个办法了。分析每次DownloadComplete 时的URL,对应的URL执行对应的事件,应该可以的
procedure TForm1.WebBrowser1StatusTextChange(Sender: TObject;
const Text: WideString);
begin
判断“Text”是否为“完毕”
end;相关代码已经通过QQ发给你。