小弟在线程里动态创建了一个TWebBrowser控件,希望将它Navigate到指定的网页,然后从这个网页的源数据里取到一个地址,最后将TWebBrowser指向这个地址。
现在的情况是,从第一个网页抽取的地址没有问题,是正常的。但是再将TWebBrowser重指定这个地址时,就会显示"该页无法显示"。如果是不先指向第一个网页,而是直接指向第二个地址,则是正常的。这是什么原因?另外,我也试了另开一个TWebBrowser控件,即第一个WebBrowser控件指向第一个网页,页面加载完成后,用第二个WebBrowser控件指向第二个网页,这里,第二个网页同样显示“该页无法显示”。无解了,求教啊~~~
现在的情况是,从第一个网页抽取的地址没有问题,是正常的。但是再将TWebBrowser重指定这个地址时,就会显示"该页无法显示"。如果是不先指向第一个网页,而是直接指向第二个地址,则是正常的。这是什么原因?另外,我也试了另开一个TWebBrowser控件,即第一个WebBrowser控件指向第一个网页,页面加载完成后,用第二个WebBrowser控件指向第二个网页,这里,第二个网页同样显示“该页无法显示”。无解了,求教啊~~~
uses
ActiveX, MSHTML;procedure TForm1.FormCreate(Sender: TObject);
begin
wb1.Navigate('about:blank');
end;procedure TForm1.FormShow(Sender: TObject);
begin
wb1.Navigate('www.google.cn');
end;procedure TForm1.wb1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
var
doc:IHTMLDocument2;
all:IHTMLElementCollection;
len:integer;
item:OleVariant;
begin
doc:=wb1 .Document as IHTMLDocument2;
all:=doc.Get_links;
len:=all.length;
if len > 0 then
begin
item:=all.item(0,varempty);
if not wb1.Busy then
wb1.Navigate(item.href);
end;
end;initialization
OleInitialize(nil);finalization
OleUninitialize;