Hi there...

How can you stop IE from opening up in a WebBrowser control on a new window (target=_blank")? I've gotten the WebBrowser_NewWindow thig and tried e.Cancel and CancelEventArgs and none of these work. What do I do?

By THe way, I'm using VB Express 2008

Please help me! This is the only thing I have left to do! Success is like a step away!

How can you stop IE from opening up in a WebBrowser control on a new window (target=_blank")?

If I understand correctly, you put a WebBrowser control on a form, and when you Issue Navigate it open in IE instead of the form? if that so,

WebBrowser1.Navigate("www.google.com", False)

A bullet-proof method is

WebBrowser1.AllowNavigation = False

but that does prevent all navigation. That's probably what you don't want.

You could trap NewWindow event (like you did)

Private Sub WebBrowser1_NewWindow(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles WebBrowser1.NewWindow
  ' Prevent opening a new windows
  e.Cancel = True

End Sub

and that worked for me. I tested it with a DaniWeb's thread. "Help with Code Tags" have target="_blank" and they were blocked to open in IE.

It's a good thing to keep in mind that there are many ways to open a pop-up window from a web page. I believe that you just can't prevent all pop-ups with the WebBrowser control.

A bullet-proof method is

WebBrowser1.AllowNavigation = False

but that does prevent all navigation. That's probably what you don't want.

You could trap NewWindow event (like you did)

Private Sub WebBrowser1_NewWindow(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles WebBrowser1.NewWindow
  ' Prevent opening a new windows
  e.Cancel = True

End Sub

and that worked for me. I tested it with a DaniWeb's thread. "Help with Code Tags" have target="_blank" and they were blocked to open in IE.

It's a good thing to keep in mind that there are many ways to open a pop-up window from a web page. I believe that you just can't prevent all pop-ups with the WebBrowser control.

I tried e.Cancel, but it says that cancel isn't part of System.EventArgs . I think it's because you've already clicked, and the process has already started.

it says that cancel isn't part of System.EventArgs

That's correct. But in the code I posted, parameter e is defined ByVal e As System.ComponentModel.CancelEventArgs .

I think it's because you've already clicked, and the process has already started.

That's correct too. And e.Cancel = True cancels that.

I have .NET 2.0 and I haven't used .NET 1.x version. Is your WebBrowser control 1.x version perhaps? That could explain why you have argument e of different type than I have. I believe that in .NET 3.x version you would also have ByVal e As System.ComponentModel.CancelEventArgs in WebBrowser1.NewWindow event. That's the only thing that comes in to my mind.

That's correct. But in the code I posted, parameter e is defined ByVal e As System.ComponentModel.CancelEventArgs .
That's correct too. And e.Cancel = True cancels that.

I have .NET 2.0 and I haven't used .NET 1.x version. Is your WebBrowser control 1.x version perhaps? That could explain why you have argument e of different type than I have. I believe that in .NET 3.x version you would also have ByVal e As System.ComponentModel.CancelEventArgs in WebBrowser1.NewWindow event. That's the only thing that comes in to my mind.

Oh my god!
That would explain so much! I never saw that. I'll try at as soon as I get home. Thanks, I have a feeling it'll work now! (Knock on virtual wood). THANKS SO MUCH!

Hi! Nice to hear that you got answer to your problem. Could you please mark the thread as solved. Thank you!

This question has already been answered. Start a new discussion instead.