问一个关于WebBrowser的问题(100分)

  • 主题发起人 主题发起人 carem1
  • 开始时间 开始时间
C

carem1

Unregistered / Unconfirmed
GUEST, unregistred user!
我在使用WebBrowser的时候,如果点击一个非本页连接,那么就会弹出一个新的ie窗口,如何让程序不弹出新窗口,而始终只是使用一个WebBrowser来浏览呢?我查询过大富翁数据库,但是也不外乎2个方法,一个是使用2个WebBrowser互相交叉显示,但是这个不符合我的要求。
另外一个方法是使用一个名为DWebBrowserEvents的控件,但是这个控件可以在那里找到呢?
或者是否有不使用第三方控件的第三个实现方法呢?
资料如下:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=493553
 
//OnNewWindow2事件里写代码:
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
begin
ppDisp:= Webbrowser1.DefaultDispatch;
end;
 
djrj的方法很容易造成IE SCRIPT错误,不信上一下SINA或SOHU就知道了。
下面的方法好一点:
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
var
NewApp: TForm1;
begin
NewApp := TForm1.Create(Owner);
NewApp.Visible := true;
ppdisp := NewApp.webbrowser1.Application;

end;
 
问题: WebBrowser如何不跳舞 ( 积分: 20 )
分类: 控件 - 使用

来自: zqssoft, 时间: 2005-10-23 22:31:00, ID: 3241266
请问:
当用Webbrowser浏览一个网页时,如果单击一个链接有时候会打开一个IE的新窗口,而不是由Webbrowser当前页直接转到链接页,如何才能做到直接在当前Webbrowser控件中进行跳转呢?而不是打开一个新的IE窗口.

来自: satanmonkey, 时间: 2005-10-24 9:13:27, ID: 3241472
转帖个給你.原帖是1652077

一个比较笨的办法,将两个同样大小的WebBrowser叠放在一起,WebBrowser1在前,WebBrowser2在后。

procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('www.vckbase.com');
end;

procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
begin
ppDisp:=WebBrowser2.DefaultDispatch;
WebBrowser2.BringToFront;
end;

procedure TForm1.WebBrowser2NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
begin
ppDisp:=WebBrowser1.DefaultDispatch;
WebBrowser1.BringToFront;
end;

问题讨论没有结束 ...
 
多谢各位,但是你们给出的答案和我找到的没什么分别,有没有第三种方法?或者告诉我WebBrowserEvents控件在那里,怎么用也就行了~!谢谢各位~!
 
多加一句,其实我是想用WebBrowser来浏览ftp里面的内容,现在的问题是,双击ftp里面的某个文件夹的时候,ftp就会重新跳出一个窗口,而且是用ie打开的,能不能让他始终困在一个WebBrowser呢?

我不是用WebBrowser来浏览web的内容,我是用来浏览ftp的内容,我这样的思路有错么?各位指教一下吧!
 
我也遇到这个问题
希望哪位能有一个好的解决办法
 
我也顶一下,别忘了给我散分[:D]
 
困惑中,严重关注事态的发展...
 
又来一个灌水的~!!!!
 
别用webbrower了呢,用个ftp组件,再用个listview什么的,自己模拟出来个可视的ftp客户端多稳定。
 
工作量太大了~!
 
//OnNewWindow2事件里写代码:
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
begin
ppDisp:= Webbrowser1.DefaultDispatch;
end;

还要把webbrowser1.slient:=true; //禁脚本错误
 
to:yaojbo

不可以哦,因为我要浏览的是ftp不是web~!
 
后退
顶部