Интересно, есть ли способ удалить сообщение WebBrowser

Вы уверены, что хотите уйти с этой страницы?

Когда я пытаюсь перейти по другому URL-адресу, это происходит.

Erro picture

Я пробовал эти методы

e.Cancel = False

WebBrowser1.Dispose()

WebBrowser1 = New WebBrowser

WebBrowser1.ScriptErrorsSuppressed = True

WebBrowser1.Navigate(New Uri("https://www.google.com"))
0
Beginner01 23 Сен 2018 в 07:15

1 ответ

Лучший ответ

Это закодировано на веб-сайте, поэтому вам придется добавить на страницу некоторый Javascript, чтобы переопределить запрос.

Но будьте осторожны с этим. Для этого требуется переопределить весь обработчик событий window.onbeforeunload , и некоторые страницы, возможно, решили сделать больше, чем просто отобразить приглашение (возможно, сохранить данные или что-то подобное).

Чтобы начать с добавления ссылки на mshtml, это необходимо, чтобы иметь возможность устанавливать содержимое элемента скрипта (ссылка на Атанас Корчев):

  1. Щелкните правой кнопкой мыши свой проект в Solution Explorer и нажмите Add Reference....

  2. Выберите вкладку Browse и перейдите к C:\Windows\System32

  3. Выберите mshtml.tlb и нажмите OK.

  4. В Solution Explorer разверните узел References. Если вы не можете его развернуть или он не существует, нажмите кнопку Show All Files в верхней части Solution Explorer.

  5. Выберите ссылку mshtml, перейдите к Property Window и убедитесь, что для Embed Interop Types установлено значение True.

Теперь вы можете использовать этот код:

Private Sub RemoveOnBeforeUnloadPrompt()
    If WebBrowser1.Document IsNot Nothing AndAlso WebBrowser1.Document.Body IsNot Nothing Then
        'Create a <script> tag.
        Dim ScriptElement As HtmlElement = WebBrowser1.Document.CreateElement("script")
        ScriptElement.SetAttribute("type", "text/javascript")

        'Insert code to override the window.onbeforeunload event handler.
        CType(ScriptElement.DomElement, mshtml.IHTMLScriptElement).text = "function __removeOnBeforeUnload() { window.onbeforeunload = function() {}; }"

        'Append script to the web page.
        WebBrowser1.Document.Body.AppendChild(ScriptElement)

        'Run the script.
        WebBrowser1.Document.InvokeScript("__removeOnBeforeUnload")
    End If
End Sub

Затем перед вы переходите к вызову новой страницы:

RemoveOnBeforeUnloadPrompt()
0
Visual Vincent 23 Сен 2018 в 11:31