在Silverlight中禁用WebBrowser控件中的JavaScript错误

时间:2011-02-08 10:23:39

标签: silverlight browser silverlight-oob

我正在开发Silverlight OOB应用程序,我需要在其中显示网页 - 我想通过WebBrowser控件来完成它,但在页面加载期间,我收到许多带有JavaScript错误的MessageBoxes。

有没有办法隐藏这些MessageBoxes?

在winform WebBrowser控件中,可以使用ScriptErrorsSuppressed属性,但在SL中没有。

如果有任何帮助,我将不胜感激。

2 个答案:

答案 0 :(得分:1)

尝试在Internet Explorer的高级设置中关闭脚本调试。最终,控件使用MSHTML来提供渲染,而渲染又从IE中获取了许多设置。

答案 1 :(得分:1)

今天我在我的应用程序中回到了这个问题,我能够以某种方式解决它。因为我只需要显示一个页面 - 在这些页面上没有太多用户交互 - 我就这样解决了。

在代码中,我使用属性为security="restricted"的iframe创建一个html,然后将url注入此iFrame。

我的代码如下所示:

var html = new StringBuilder(@"<html xmlns=""http://www.w3.org/1999/xhtml"" lang=""EN""> 
                                            <head> 
                                            <meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8"" /> 
                                            <title>{@pageTitle}</title> 
                                            <style type=""text/css""> 
                                            html {overflow: auto;} 
                                            html, body, div, iframe {margin: 0px; padding: 0px; height: 100%; border: none;} 
                                            iframe {display: block; width: 100%; border: none; overflow-y: auto; overflow-x: hidden;} 
                                            </style> 
                                            </head> 
                                            <body> 
                                            <iframe id=""tree"" name=""tree"" security=""restricted"" src=""{@PageLink}"" frameborder=""0"" marginheight=""0"" marginwidth=""0"" width=""100%"" height=""100%"" scrolling=""auto""></iframe> 
                                            </body> 
                                            </html>");
html.Replace("{@pageTitle}", Title);
html.Replace("{@PageLink}", uri.ToString());

然后我使用NavigateToString WebBrowser方法将html加载到其中。

P.S。我已经添加了这个作为接受这个问题的答案。