我在delphi里面用WebBrowser嵌套了一个网页,但是网页里面还有弹出窗口事件。
我在嵌套这个网页的WebBrowser1的NewWindow2事件里面写啦一句ppDisp:= wb2.Application;(如果wb2也是我直接先放进去的WebBrowser控件)可以把弹出的页面显示在我放这个wb2里面,但是当弹出窗口关闭后,wb2自动销毁,在点击弹出窗口就报错啦!所以我想在NewWindow2事件里面写自动创建WebBrowser。
代码:
procedure TForm37.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);var
wb:TWebBrowser;begin
wb := TWebBrowser.Create(Form37);
wb.Visible:=true;
wb.Align:=alClient;
wb.ParentWindow:=Form37.Handle;
ppDisp:= wb.Application;
end;当点击的时候,会闪出一下弹出窗口,但是有不见啦,好像自己关闭或是隐藏啦一样!
怎么解决啊!
我在嵌套这个网页的WebBrowser1的NewWindow2事件里面写啦一句ppDisp:= wb2.Application;(如果wb2也是我直接先放进去的WebBrowser控件)可以把弹出的页面显示在我放这个wb2里面,但是当弹出窗口关闭后,wb2自动销毁,在点击弹出窗口就报错啦!所以我想在NewWindow2事件里面写自动创建WebBrowser。
代码:
procedure TForm37.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);var
wb:TWebBrowser;begin
wb := TWebBrowser.Create(Form37);
wb.Visible:=true;
wb.Align:=alClient;
wb.ParentWindow:=Form37.Handle;
ppDisp:= wb.Application;
end;当点击的时候,会闪出一下弹出窗口,但是有不见啦,好像自己关闭或是隐藏啦一样!
怎么解决啊!
现在我是想用动态创建WebBrowser,这样就算弹出窗口用完后关闭掉,在点其他弹出窗口就不会报错
var ppDisp: IDispatch; var Cancel: WordBool);
var
lsweb:TWebBrowser;
nOld,nNew:Integer;
begin
if NewWinOk=True then begin
NewWinOk:=False;
with TTabSheet.Create(PageControl1) do begin
PageControl := PageControl1;
ShowHint:=False;
Caption := '空白页';
end;
nNew:=PageControl1.PageCount-1;
//创建TWebBrowser控件
lsweb:=TWebBrowser.Create(self);
with lsweb do begin
Left := 0;
Top := 0;
Width := 745;
Height := 575;
Align := alClient;
Visible:=True;
OnProgressChange := WebBrowserProgressChange;
OnNewWindow2 := WebBrowserNewWindow2;
OnDocumentComplete := WebBrowserDocumentComplete;
OnTitleChange:=WebBrowserTitleChange;
OnStatusTextChange:=WebBrowserStatusTextChange;
OnDownloadBegin:=WebBrowserDownloadBegin;
OnDownloadComplete:=WebBrowserDownloadComplete;
end;
PageControl1.ActivePageIndex:=nNew;
TWinControl(lsweb).Parent:=PageControl1.Pages[nNew]; //PageControl1.ActivePage;
ppDisp:=lsweb.DefaultDispatch;
NewWinOk:=True;
end;
end;
var ppDisp: IDispatch; var Cancel: WordBool);
var wb:TWebBrowser;
begin
wb := TWebBrowser.Create(Form37);
wb.Visible:=true;
wb.Align:=alClient;
// wb.ParentWindow:=Form37.Handle;
Twincontrol(wb).Parent:=Form37;
ppDisp:= wb.Application;
end;
(广州仔)