Элемент управления WebBrowser не имеет встроенного метода для обнаружения события JavaScript.Close. Вы можете внедрить свой собственный JS, чтобы помочь вам справиться с этим, ИЛИ вы можете расширить элемент управления WebBrowser, чтобы создать событие при запуске window.close ().
С этой страницы я получил следующую информацию
http://blogs.msdn.com/b/jpsanders/archive/2007/05/25/how-to-close-the-form-hosting-the-webbrowser-control-when-scripting-calls-window-close-in-the-net-framework-version-2-0.aspx
Создайте новый файл класса и поместите следующий код в
Public Class MyExtendedBrowserControl
' Based on WebBrowser
Inherits System.Windows.Forms.WebBrowser
' Define constants from winuser.h
Private Const WM_PARENTNOTIFY As Integer = &H210
Private Const WM_DESTROY As Integer = 2
'Define New event to fire
Public Event WBWantsToClose()
Protected Overrides Sub WndProc(ByRef m As Message)
Select Case m.Msg
Case WM_PARENTNOTIFY
If (Not DesignMode) Then
If (m.WParam = WM_DESTROY) Then
' Tell whoever cares we are closing
RaiseEvent WBWantsToClose()
End If
End If
DefWndProc(m)
Case Else
MyBase.WndProc(m)
End Select
End Sub
End Class
Теперь вам нужно заменить встроенный вызов WebControl новым. Отредактируйте файл form1.designer.vb или как там называется ваша форма. Для этого нажмите значок «Показать все файлы» в обозревателе решений, чтобы увидеть файл конструктора. Открыв файл конструктора, замените System.Windows.Forms.WebBrowser на MyExtendedBrowserControl.
Постройте проект. Это необходимо сделать для того, чтобы элемент управления был скомпилирован и отображался без ошибок в самой форме.
Теперь, когда вы создали проект, вы сможете редактировать элемент управления и получить доступ к новому событию WBWantsToClose. Откройте форму, щелкните элемент управления WebBrowser, откройте его свойства (F4), щелкните значок «события» (молнии), дважды щелкните «WBWantsToClose». Это приведет вас в код с событием, готовым к обработке.