Как игнорировать ошибки скрипта в Webbrowser - PullRequest
2 голосов
/ 11 января 2011

Что происходит, когда я закрываю свое приложение, которое использует веб-браузер. Следующий URL использует Flash Player.

alt text

Все отлично работает. Эта ошибка отображается при закрытии приложения. Как мне это игнорировать?

Ответы [ 5 ]

2 голосов
/ 30 декабря 2014

Я знаю, что уже слишком поздно, но я чувствую, что у меня есть умный ответ на этот вопрос.

Используйте это, это работает для меня на лету.:)

webBrowser.ScriptErrorsSuppressed = true;

Если это не работает, мы можем использовать различные методы, такие как показ окна подтверждения (например: это окно хочет закрыть, хотите ли вы продолжить Да / Нет)

[DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]
    static extern IntPtr FindWindowByCaption(IntPtr ZeroOnly, string lpWindowName);

[DllImport("user32.dll")]
        private static extern bool SetForegroundWindow(IntPtr hWnd);

 private void TimerPopUp_Tick(object sender, EventArgs e)
        {
            IntPtr hWnd1 = FindWindowByCaption(IntPtr.Zero, "Web Browser");

            if (hWnd1 != IntPtr.Zero && SetForegroundWindow(hWnd1))
            {
                SendKeys.Send("{Enter}");
            }

        }

Если есть какие-либо ошибки, см. ссылка .

2 голосов
/ 11 января 2011

Вы можете отключить ошибки javascrip, установив для свойства ScriptErrorsSuppressed элемента управления WebBrowser значение true.Хотя иногда это может не сработать.Если это не работает, проверьте http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/46a32b08-3834-4a13-8170-e0eba2498284 и http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/07df5263-613c-4780-89a2-67ebf2a1e670

0 голосов
/ 29 мая 2017

В Visual Studio 2015 есть опция, которая может включать или отключать всплывающие окна.

В web browser propertiesScript Errors Suppressed, затем установите True для отключения всплывающих окон.

0 голосов
/ 21 ноября 2016

Вы должны сделать COM-элемент управления WebBrowser видимым и дать ему соответствующие разрешения:

#region Using Statements:



using System;
using System.Windows.Forms;
using System.Security.Permissions;



#endregion



[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public partial class Form1 : Form
{



public Form1()
{

InitializeComponent();

// WebBrowser Configuration:
webBrowser1.ObjectForScripting = this;
webBrowser1.AllowWebBrowserDrop = false;
webBrowser1.ScriptErrorsSuppressed = true;
webBrowser1.WebBrowserShortcutsEnabled = false;
webBrowser1.IsWebBrowserContextMenuEnabled = false;

}




private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("https://www.google.com/");
}


}

или

#region Using Statements:



using System;
using System.Windows.Forms;
using System.Security.Permissions;



#endregion



[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public partial class Form1 : Form
{



public Form1()
{

InitializeComponent();

// WebBrowser Configuration:
webBrowser1.ObjectForScripting = new ObjectForScripting();
webBrowser1.AllowWebBrowserDrop = false;
webBrowser1.ScriptErrorsSuppressed = true;
webBrowser1.WebBrowserShortcutsEnabled = false;
webBrowser1.IsWebBrowserContextMenuEnabled = false;

}




private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("https://www.google.com/");
}


[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public class ObjectForScripting
{

// User Code to handle events..

}


}

Примечание. Это может работать некорректно в режиме отладки.

Кроме того, если вам нужен ключ реестра, установленный для локальной совместимости приложений, он также не будет работать в режиме отладки.

IsWOW64 = @"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION";



IsNotWOW64 = @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION";
0 голосов
/ 19 ноября 2015

Во-первых, вы должны знать, что элемент управления веб-браузера использует IE7 в качестве своей базы (то есть, более старую версию Internet Explorer), поэтому сценарии, которые вы запускаете сейчас, совместимы с современными браузерами и, следовательно, с ошибкой. Прежде всего, если вы поставите:

<meta http-equiv="X-UA-Compatible" content="IE=edge"/>

внутри вашего раздела страницы, он будет отображаться с установленной на компьютере версией IE вместо IE 7 * 1004 по умолчанию

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...