关于WebBrowser的几个问题 ( 积分: 60 )

  • 主题发起人 主题发起人 xinyuan_4021
  • 开始时间 开始时间
X

xinyuan_4021

Unregistered / Unconfirmed
GUEST, unregistred user!
本人在用Edit作为网址输入,回车链接。WebBrowser页面放在PageControl中,每次输入新网址,打开一个NewPage。现有两个问题:
1:如果输入的网址原先已经打开,如何控制不创建新的NewPage,而直接打开原先页面?
2:在已经打开的网页里,点击一个链接,它用IE浏览器打开,能否用程序控制使得创建一个NewPage来访问。类似腾讯的浏览器。
 
本人在用Edit作为网址输入,回车链接。WebBrowser页面放在PageControl中,每次输入新网址,打开一个NewPage。现有两个问题:
1:如果输入的网址原先已经打开,如何控制不创建新的NewPage,而直接打开原先页面?
2:在已经打开的网页里,点击一个链接,它用IE浏览器打开,能否用程序控制使得创建一个NewPage来访问。类似腾讯的浏览器。
 
2个问题都是在在Twebbroswer的OnNewWindows2事件里面控制,Cancel参数设置成true就不弹出新窗口了,你判断一下现在的url是否打开过,打开过的话就cancel:=true;并且控制pagecontrol转到打开那页就可以了。

第2个问题是替换ppDisp参数,你自己生成1个Twebbrowser的实例,用它替换掉ppDisp,就会在你生成的实例里面打开新网页了。

去这里下代码做参考吧
http://www.playicq.cn/1/26502.html
 
在BeforeNavigate2事件里处理.得到URL后要Cancel:=true;
不过,要注意判断当前Page里的webbrowser是否已经装载完毕页面.否则Cancel:=true会导致不能装载任何内容.
判断是否已装载完毕可以在NavigateComplete2事件里判断吧.
 
后退
顶部