如何实现新开窗口还在webbrowser中打开!谢谢!(50分)

  • 主题发起人 主题发起人 DaChu
  • 开始时间 开始时间
D

DaChu

Unregistered / Unconfirmed
GUEST, unregistred user!
IE中点一个链接,就开一个新窗口
我使用Webbrowser控件打开这个网页,点击这个新开窗口的链接时,希望新窗口内容还在webbrowser控件中打开,如何实现? 谢谢

另:
ppDisp :=webbrowser1.DefaultInterface;
  或
ppDisp := Webbrowser1.Application;
不管用!
 
呵呵我来收分了

procedure TMainWebFrm.WbrowserNewWindow2(ASender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
var
WebBrowser : TEmbeddedWB;
begin
WebBrowser := TEmbeddedWB.Create(nil);
ppDisp := WebBrowser.Application;
WebBrowser.OnBeforeNavigate2 := NewWebViewBeforeNavigate2;
end;
procedure NewWebViewBeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);

begin

try

Wbrowser.Navigate2(url);

except
end;
 
TEmbeddedWB  是什么? 三方控件? 我查查看!

如果OK ,两帖的分都给你,哈哈
 
是的,比Twebbrowser好用,不过你把他修改成成Twebbrowser也可以的
 
还是使用的TWebBrowser! 做了一下修改:
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);

begin
ppDisp := WebBrowser2.Application;
//上面这句可以使弹出的新窗口在Webbrowser2中显示

end;


procedure TForm1.WebBrowser2BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);

begin
//iFrame时 TargetFrameName = ''
if (URL = 'about:blank') Or (TargetFrameName = '') then
begin
exit;
end
else
begin
WebBrowser1.Navigate2(URL);
end;

end;

procedure TForm1.WebBrowser2NavigateComplete2(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin

if URL = 'about:blank' then
begin
exit;
end;

WebBrowser2.GoHome;
end;

因为新开的窗口是有背景音乐的,所以又让它回到了 about:blank
 
忘记给分啦!
 

Similar threads

S
回复
0
查看
694
SUNSTONE的Delphi笔记
S
S
回复
0
查看
782
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部