在WebBrowser控件中抑制脚本错误但仍允许弹出窗口

时间:2014-09-11 19:05:44

标签: javascript wpf webbrowser-control

当我使用WebBrowser控件查看WPF应用程序中的网页时,我遇到了很多脚本错误。为了抑制这些,我使用了此链接中概述的“无声”方法:http://social.msdn.microsoft.com/Forums/vstudio/en-US/4f686de1-8884-4a8d-8ec5-ae4eff8ce6db/new-wpf-webbrowser-how-do-i-suppress-script-errors?forum=wpf

    void wbMain_Navigated(object sender, NavigationEventArgs e)
    {
        SetSilent(WebBrowser, true);
    }

    public static void SetSilent(WebBrowser browser, bool silent)
    {
        if (browser == null)
            throw new ArgumentNullException("browser");

        FieldInfo webBrowserInfo = browser.GetType().GetField("_axIWebBrowser2", BindingFlags.Instance | BindingFlags.NonPublic);
        object comWebBrowser = null;

        if (webBrowserInfo != null)
            comWebBrowser = webBrowserInfo.GetValue(browser);

        if (comWebBrowser != null)
            comWebBrowser.GetType().InvokeMember("Silent", BindingFlags.SetProperty, null, comWebBrowser, new object[] { silent });
    }

但现在的问题是因为“无声”属性已设置,我的网页右键单击选项都不起作用。 (我的Flash网站上有许多右键单击选项可弹出各种菜单。)

如果我不使用上面的解决方法,则右键单击操作会显示脚本错误:

“此页面上的脚本出错”

我该如何解决这个问题?

0 个答案:

没有答案