Click here to Skip to main content
15,887,242 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more: , +
Hello,

How to remove javascript error and open page in webbrowser in wpf?

Please help me.

Thanks in Advance.

Please help me.

Ankit Agarwal
Software Engineer

What I have tried:

I have tried this but javascript error hide but my page is not opening.

private void Window_Loaded(object sender, RoutedEventArgs e)
{

HideScriptErrors(webBrowser1, true);
}
public void HideScriptErrors(WebBrowser wb, bool Hide)
{
FieldInfo fiComWebBrowser = typeof(WebBrowser).GetField("_axIWebBrowser2", BindingFlags.Instance | BindingFlags.NonPublic);
if (fiComWebBrowser == null) return;
object objComWebBrowser = fiComWebBrowser.GetValue(wb);
if (objComWebBrowser == null) return;
objComWebBrowser.GetType().InvokeMember("Silent", BindingFlags.SetProperty, null, objComWebBrowser, new object[] { Hide });
}

private void BtnUrlOpen_Click(object sender, RoutedEventArgs e)
{
webBrowser1.Source = new Uri("https://apply.xxx.com/xyz/abc");
}

my page is not opening.This code is running successfully only javascript error hide.

Please help me.
How can we resolve this issue.
Posted
Updated 13-Apr-16 10:36am
Comments
Richard Deeming 6-Apr-16 9:50am    
To get rid of the script errors, you'll need to fix the script on your page. You can't do that from WPF.

Remember, the WebBrowser control is stuck in IE7 mode unless you modify the registry[^] on every machine that runs your application. If your site has errors in IE7, then it will have errors in the WebBrowser control.

If you just want to stop the errors from displaying, try setting the ScriptErrorsSuppressed property[^] to True.

1 solution

Try this in the Browser_LoadCompleted

C#
private static void MainBrowser_LoadCompleted(object sender, NavigationEventArgs e)
        {
            var wbMain = sender as WebBrowser;

            SetSilent(wbMain, true); // make it silent
        }

private 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);
        }
 
Share this answer
 
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900