我正在开发Silverlight OOB应用程序,我需要在其中显示网页 - 我想通过WebBrowser控件来完成它,但在页面加载期间,我收到许多带有JavaScript错误的MessageBoxes。
有没有办法隐藏这些MessageBoxes?
在winform WebBrowser控件中,可以使用ScriptErrorsSuppressed
属性,但在SL中没有。
如果有任何帮助,我将不胜感激。
答案 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。我已经添加了这个作为接受这个问题的答案。