如何在WebBrowser打开的网页链接后直接在WebBrowser打开而不是新弹出一个IE窗口来打开

来源:互联网 发布:windows bootcamp 编辑:程序博客网 时间:2024/05/10 23:46

问题:如何在WebBrowser打开的网页链接后直接在WebBrowser打开而不是新弹出一个IE窗口来打开???
 

来自:龙之天涯, 时间:2005-6-3 15:59:41, ID:3093392
这个问题很难么??
来的兄弟也帮忙顶一下. 


来自:jinwe, 时间:2005-6-3 18:40:09, ID:3093609
引用一个别人的回答:
解决办法:控制打开新的页面在你的程序中,而不是默认用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;
这样就不会出现你的问题了 


来自:e-, 时间:2005-6-3 19:22:56, ID:3093651
WebBrowser的.OnNewWindow2
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject; var ppDisp: IDispatch;var Cancel: WordBool);
begin
    ppDisp := WebBrowser1.Application;
end; 


来自:阿狗, 时间:2005-6-5 7:41:23, ID:3094647
这个问题也曾经困扰过我一段时间啊!呵呵……
给你一个解决办法,肯定能成功!
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应定义为全局变量.实现不了找我哦! 


来自:On2008, 时间:2005-6-5 9:27:18, ID:3094664
[:D]   楼上的正解。 


来自:skadon, 时间:2005-6-5 20:07:09, ID:3095029
e-的好一些,阿狗的在一些网站中会有问题,有的是在onclick时间中打开URL的,StatusText显示的是提示之类。 


来自:龙之天涯, 时间:2005-6-6 10:54:23, ID:3095371
楼上的兄弟
你的答案已经解决了我的一个问题,
先多谢了
还想问一下

如何获取网页中TEXT中的值啊
我知道要写的话是
var
 ole :variant;
  Ole := WebBrowser1.OleObject.document.all.Item('dw');//单位名称
  Ole.value :='测试';
就可以了。
但是我如果想知道选择的是那一个单位名称
也就是TEXT 中填写的值应该如何写啊??
 


来自:龙之天涯, 时间:2005-6-6 20:30:39, ID:3096066
我通过ole.value
取到的是下面 value的值="Web 开发">
而我想取到的是Web 开发
<option value="Web 开发">Web 开发</option>
各为大侠,有什么办法解决没有啊/???

进来看看,不知道的也帮忙顶一下,谢谢了, 


来自:龙之天涯, 时间:2005-6-7 17:34:04, ID:3097067
郁闷
阿狗,说的只能解决一部分问题,正如楼上兄弟说的如果
的是在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-,兄弟,你说的办法我程序根本什么网页都打不开,更加郁闷 


来自:阿狗, 时间:2005-6-11 18:53:18, ID:3101619
思路:对text的内容进行判断,如果里面含有合法URL,将合法的URL提取出来,然后执行。
 


来自:龙之天涯, 时间:2005-6-12 20:13:12, ID:3102241
现在我是写了一个判断函数判断是否是字符,
反正感觉有点勉强
正如上面兄弟说的是,这个办法不是最好的.
哎,不行,只能先讲究吧 

原创粉丝点击