2

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

有没有办法隐藏那些消息框?

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

我将不胜感激任何帮助。

4

2 回答 2

1

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

于 2011-02-08T13:57:43.437 回答
1

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

在代码中,我使用带有属性的 iframe 创建了一个 html,security="restricted"然后将 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加载到它。

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

于 2011-05-12T18:49:45.407 回答