如何在WebBrowser1打开的网页链接后直接在WebBrowser1打开而不是新弹出一个IE窗口来打开??? ( 积分: 20 )

  • 主题发起人 主题发起人 龙之天涯
  • 开始时间 开始时间

龙之天涯

Unregistered / Unconfirmed
GUEST, unregistred user!
这个问题很难么??
来的兄弟也帮忙顶一下.
 
引用一个别人的回答:
解决办法:控制打开新的页面在你的程序中,而不是默认用IE等别的浏览器。部分代码如下:
在窗口及WebBrowser创建完以后,写此代码:
WebBrowser.OnNewWindow2:=IE1NewWindow2;
给主窗口创建一个方法:
procedure TBrowForm.IE1NewWindow2(Sender: TObject; var ppDisp: IDispatch;var Cancel: WordBool);
Var NewForm:TBrowForm;
begin
try
NewForm :=TPopBrowerForm.Create(application);
NewForm.WebBrowser.OnNewWindow2 :=IE1NewWindow2;//如果在窗口的Oncreate事件
//有此代码,此处就可以省略
ppDisp := NewForm.WebBrowser.Application;
NewForm.Show;
Cancel:=false;
except
end;
end;
这样就不会出现你的问题了
 
WebBrowser的.OnNewWindow2
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject; var ppDisp: IDispatch;var Cancel: WordBool);
begin
ppDisp := WebBrowser1.Application;
end;
 
这个问题也曾经困扰过我一段时间啊!呵呵……
给你一个解决办法,肯定能成功!
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
begin
Cancel:=true;
WebBrowser1.Navigate (NewURL);
end;
其中的NewURL是你在网页中点击的链接,它的值在以下事件中取得:
procedure TForm1.WebBrowser1StatusTextChange(Sender: TObject;
const Text: WideString);
begin
NewURL :=text;
end;
这样,当你点击网页中的连接时,就在本窗口中打开.NewURL应定义为全局变量.实现不了找我哦!
 
[:D] 楼上的正解。
 
e-的好一些,阿狗的在一些网站中会有问题,有的是在onclick时间中打开URL的,StatusText显示的是提示之类。
 
楼上的兄弟
你的答案已经解决了我的一个问题,
先多谢了
还想问一下

如何获取网页中TEXT中的值啊
我知道要写的话是
var
ole :variant;
Ole := WebBrowser1.OleObject.document.all.Item('dw');//单位名称
Ole.value :='测试';
就可以了。
但是我如果想知道选择的是那一个单位名称
也就是TEXT 中填写的值应该如何写啊??
 
我通过ole.value
取到的是下面 value的值="Web 开发">
而我想取到的是Web 开发
<option value="Web 开发">Web 开发</option>
各为大侠,有什么办法解决没有啊/???

进来看看,不知道的也帮忙顶一下,谢谢了,
 
郁闷
阿狗,说的只能解决一部分问题,正如楼上兄弟说的如果
的是在onclick时间中打开URL的,StatusText显示的是提示之类
那么NEWURL就不正确了.现在关键就是得到用户点击的URL值,我下面的程序
取到了页面上所有的URL值,有什么办法只取到当前用户点中的URL??

var

doc:IHTMLDocument2;
all:IHTMLElementCollection;
len,i:integer;
item:OleVariant;
begin
Cancel:=true;
doc:=WebBrowser1.document as IHTMLdocument2;

begin
ppDisp := WebBrowser1.Application;
doc:=WebBrowser1 .Document as IHTMLDocument2;
all:=doc.links;
len:=all.length;
for i:=0 to len-1 do begin

item:=all.item(i,varEmpty);

mmo1.lines.add(item.href);
end;

e-,兄弟,你说的办法我程序根本什么网页都打不开,更加郁闷
 
思路:对text的内容进行判断,如果里面含有合法URL,将合法的URL提取出来,然后执行。
 
现在我是写了一个判断函数判断是否是字符,
反正感觉有点勉强
正如上面兄弟说的是,这个办法不是最好的.
哎,不行,只能先讲究吧
 

Similar threads

D
回复
0
查看
925
DelphiTeacher的专栏
D
D
回复
0
查看
880
DelphiTeacher的专栏
D
D
回复
0
查看
853
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部