打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
How To Cause Navigation to Occur in Same WebB...

How To Cause Navigation to Occur in Same WebBrowser Window

When hosting the Internet Explorer 4.x or later WebBrowser control in a Visual B...

When hosting the Internet Explorer 4.x or later WebBrowser control in a Visual Basic application, you may want to have the navigation always occur in your application and not other Internet Explorer windows. If you handle the NewWindow2 event and set the Cancel flag equal to True, navigation is canceled completely. Since NewWindow2 does not provide you with the URL to navigate to as the Internet Explorer 3.x NewWindow event did, there doesn't appear to be any way to have the navigation occur in the same window.

Fortunately, Internet Explorer 4.x or later provide the WebBrowser_V1 object for compatibility with Internet Explorer 3.x. Using the WebBrowser_V1 object, you can have your application receive events from version 3.x, 4.x, and 5.x. That means that you can handle the version 3.x NewWindow event and then have the navigation occur in the current window.

In order to implement this functionality in your Visual Basic application, follo...

In order to implement this functionality in your Visual Basic application, follow these step:
  1. Create a form with a WebBrowser control on it.
  2. In the declarations section of that form, add the following:
          Dim WithEvents Web_V1 as SHDocVwCtl.WebBrowser_V1    
    This will declare a WebBrowser_V1 variable that can receive events WebBrowser_V1 provides you with the NewWindow event.
  3. In the Form_Load event, add the following:
          Set Web_V1 = WebBrowser1.Object    WebBrowser1.Navigate2 "http://www.microsoft.com/"    
    This sets the WebBrowser_V1 object to the existing Internet Explorer WebBrowser object.
  4. After the NewWindow2 event fires, the Web_V1_NewWindow event will fire with the linked URL as one of its input arguments. Remember not to set Cancel to True in NewWindow2. Also, set the Processed variable to True in the NewWindow event handler so that a new instance of Internet Explorer will not be created. The following code shows this event handler and the code necessary to navigate within the current window:
          Private Sub Web_V1_NewWindow(ByVal URL As String, _    ByVal Flags As Long, _    ByVal TargetFrameName As String, _    PostData As Variant, _    ByVal Headers As String, _    Processed As Boolean)    Processed = True    WebBrowser1.Navigate URL    End Sub    
  5. Right-click a link and select "Open in New Window" and you will find the link will still open inside your WebBrowser Control.

    Please note that Internet Explorer does not fire a NewWindow or NewWindow2 event when the user presses CTRL+N or points to New under the File menu and clicks Window.
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VC知识库:如何使IE在打开新窗口时,网页始终在本窗口中打开(也就是不另开新窗口)?
MOX.cc [vb.net中webBrowser控件的问题?如何使弹出的网页在 本身 w...
WebBrowser控件的常用方法、属性和事件
Implementing a PopUp blocker into a WebBrowse...
C#调用WebBrowser NewWindow
To suppress the default Internet Explorer error message for the window onerror event
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服