How do I suppress script errors when using the WPF WebBrowser control?
The problem here is that the WPF WebBrowser
did not implement this property as in the 2.0 control.
Your best bet is to use a WindowsFormsHost
in your WPF application and use the 2.0's WebBrowser
property: SuppressScriptErrors
. Even then, you will need the application to be full trust in order to do this.
Not what one would call ideal, but it's pretty much the only option currently.
WPF WebBrowser control - how to suppress script errors?
Here is a C# routine that is capable of putting WPF's WebBrowser
in silent mode. You can't call it at WebBrowser initialization as it 's too early, but instead after navigation occured. Here is a WPF sample app with a wbMain WebBrowser component:
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
wbMain.Navigated += new NavigatedEventHandler(wbMain_Navigated);
}
void wbMain_Navigated(object sender, NavigationEventArgs e)
{
SetSilent(wbMain, true); // make it silent
}
private void button1_Click(object sender, RoutedEventArgs e)
{
wbMain.Navigate(new Uri("... some url..."));
}
}
public static void SetSilent(WebBrowser browser, bool silent)
{
if (browser == null)
throw new ArgumentNullException("browser");
// get an IWebBrowser2 from the document
IOleServiceProvider sp = browser.Document as IOleServiceProvider;
if (sp != null)
{
Guid IID_IWebBrowserApp = new Guid("0002DF05-0000-0000-C000-000000000046");
Guid IID_IWebBrowser2 = new Guid("D30C1661-CDAF-11d0-8A3E-00C04FC9E26E");
object webBrowser;
sp.QueryService(ref IID_IWebBrowserApp, ref IID_IWebBrowser2, out webBrowser);
if (webBrowser != null)
{
webBrowser.GetType().InvokeMember("Silent", BindingFlags.Instance | BindingFlags.Public | BindingFlags.PutDispProperty, null, webBrowser, new object[] { silent });
}
}
}
[ComImport, Guid("6D5140C1-7436-11CE-8034-00AA006009FA"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
private interface IOleServiceProvider
{
[PreserveSig]
int QueryService([In] ref Guid guidService, [In] ref Guid riid, [MarshalAs(UnmanagedType.IDispatch)] out object ppvObject);
}
Disable JavaScript error in WPF WebBrowser control
I didn't found easy way. So i just change WPF WebBrowser to WinForms WebBrowser and webBrowser.ScriptErrorsSuppressed = true;
Thanks
Satish
Related Topics
Read Xml Attribute Using Xmldocument
Use Multiple Jwt Bearer Authentication
Correct Way to Override Equals() and Gethashcode()
Handling Warning for Possible Multiple Enumeration of Ienumerable
Call Signalr Core Hub Method from Controller
Searching for a Specific Jtoken by Name in a Jobject Hierarchy
How to Set Aspnetcore_Environment to Be Considered for Publishing an ASP.NET Core Application
C# Sort and Orderby Comparison
How to Bind an Enum to a Combobox Control in Wpf
How to Start Winform App Minimized to Tray
How to Update Record Using Entity Framework 6
When Should I Dispose of a Data Context
Displayname Attribute from Resources
When Is a Static Constructor Called in C#