.我用TWebBrowser和PageControl写浏览器,如果遇到很多弹出式窗口的网站,比如“华军软件园”进入它的网站会弹出一些广告,但是我的程序并没有打开那个广告网页,PageControl是新建了页面来打开,可是网页并没有显示出来,整个页面是灰度的。这种情况只发生在有弹出式广告的网站(而且弹出的广告中多含有Flash动画)和CGI弹出窗口,还有不仅网页显示不出来,而且还会出现这样的错误信息:Could not obtain OLE control window handle。这是怎么回事?
下面是TWebBrowser的OnNewWindow2过程:
procedure TMainForm.OnNewWindow2(Sender: TObject; var ppDisp: IDispatch;
var Cancel: WordBool);
var
n:Integer;
tabwb:TTabSheetWithEM;{这是我自己写的一个类,把TWebBrowser和TTabSheet组合在一起了}
begin
PageControl.Parent:=MainForm;
tabwb:=TTabSheetWithEM.Create(self);
tabwb.PageControl:=self.PageControl;
tabwb.WebBrowser.ParentWindow:=tabwb.Handle;
TWinControl(tabwb.WebBrowser).Parent:=tabwb;
tabwb.WebBrowser.Align:=alclient;
for n:=0 to PageControl.PageCount-1 do
ppdisp:=((self.PageControl.Pages[n]) as TTabSheetWithEM).WebBrowser.Application;
end;
下面是TWebBrowser的OnNewWindow2过程:
procedure TMainForm.OnNewWindow2(Sender: TObject; var ppDisp: IDispatch;
var Cancel: WordBool);
var
n:Integer;
tabwb:TTabSheetWithEM;{这是我自己写的一个类,把TWebBrowser和TTabSheet组合在一起了}
begin
PageControl.Parent:=MainForm;
tabwb:=TTabSheetWithEM.Create(self);
tabwb.PageControl:=self.PageControl;
tabwb.WebBrowser.ParentWindow:=tabwb.Handle;
TWinControl(tabwb.WebBrowser).Parent:=tabwb;
tabwb.WebBrowser.Align:=alclient;
for n:=0 to PageControl.PageCount-1 do
ppdisp:=((self.PageControl.Pages[n]) as TTabSheetWithEM).WebBrowser.Application;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货