VB.NET WebBrowser отключить JavaScript - PullRequest
3 голосов
/ 12 ноября 2010

Есть ли способ отключить веб-браузер javascript в vb.net?

Ответы [ 4 ]

1 голос
/ 02 ноября 2012

у меня работает:

Private Function TrimScript(ByVal htmlDocText As String) As String


    While htmlDocText.ToLower().IndexOf("<script type=""text/javascript"">") > -1
        Dim s_index As Integer = htmlDocText.ToLower().IndexOf("<script type=""text/javascript"">")
        Dim e_index As Integer = htmlDocText.ToLower().IndexOf("</script>")
        htmlDocText = htmlDocText.Remove(s_index, e_index - s_index)
    End While
    Return htmlDocText

End Function

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim webClient As New System.Net.WebClient
    Dim result As String = webClient.DownloadString(yourUrl)
    Dim wb As New WebBrowser
    wb.Navigate("")
    Do While wb.ReadyState <> WebBrowserReadyState.Complete
        Application.DoEvents()
    Loop
    Dim script As String = TrimScript(result)
    wb.DocumentText = script

End Sub
0 голосов
/ 11 января 2012

Нет на самом деле ... но если вы получаете всплывающее сообщение об ошибке, в котором говорится, что скрипт запущен, вы можете установить для свойства подавляющих ошибок веб-браузера значение "true"

0 голосов
/ 31 августа 2012

Какое всплывающее сообщение вы хотите отключить?Если это предупреждающее сообщение, попробуйте это, очевидно, разрешив объект окна или фрейма в соответствии с вашими конкретными потребностями. Я только что принял документ верхнего уровня, но если вам нужен iframe, вы можете получить к нему доступ с помощью window.frames (0).для первого кадра и т. д. (часть JavaScript) ... вот некоторый код, предполагая, что WB является вашим веб-браузером ...

WB.Document.parentWindow.execScript "window.alert= function () {}; "," JScript "

Вы должны запустить приведенный выше код только после завершения загрузки всей страницы, я понимаю, что это очень сложно сделать (а версия с полной версией не имеет 'еще не было опубликовано) однако я уже делаю это (полное доказательство) в течение некоторого времени, и вы можете собрать подсказки о том, как сделать это точно, если вы прочитаете некоторые из моих предыдущих ответов, обозначенных «webbrowser» и «webbrowser-control»,но возвращаясь к рассматриваемому вопросу, если вы хотите отменить JavaScript-сообщение .confirm, просто замените window.alert на window.confirm (конечно, квалифицируя ваш объект window. объектом правильный объект для достижения иерархии документа, с которым вы работаетес).Вы также можете отключить метод .print с помощью вышеуказанного метода, а также новый метод IE9 .prompt.

Если вы хотите полностью отключить JavaScript, вы можете использовать реестр для этого, и вы должны сделатьИзменение реестра до того, как элемент управления веб-браузера загружается в память, и каждый раз, когда вы меняете его (вкл. и выкл.), вы должны перезагружать элемент управления веб-браузера и в память (или просто перезапускать свое приложение).

Ключ реестра \HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\ - имя ключа 1400 и значение для его отключения - 3, а для включения - 0.

Конечно, поскольку под ключом Zones есть 5 зон, вам необходимо либо изменить егодля активной зоны или для всех зон, чтобы быть уверенным.Тем не менее, вам действительно не нужно делать это, если все, что вы хотите сделать, - это всплывающие сообщения si supress js.

Дайте мне знать, как у вас дела, и если я могу помочь в дальнейшем.

0 голосов
/ 08 марта 2011

Краткий ответ: Нет.

Несколько более длинный ответ: Нет, API управления веб-браузером не позволяет отключить стандартные функции браузера.

...