我正在开发 Silverlight OOB 应用程序,我需要在其中显示网页 - 我想通过 WebBrowser 控件来完成它,但是在页面加载期间,我收到很多带有 JavaScript 错误的 MessageBoxes。
有没有办法隐藏那些消息框?
在 winform WebBrowser 控件中有ScriptErrorsSuppressed
可以使用的属性,但在 SL 中没有。
我将不胜感激任何帮助。
我正在开发 Silverlight OOB 应用程序,我需要在其中显示网页 - 我想通过 WebBrowser 控件来完成它,但是在页面加载期间,我收到很多带有 JavaScript 错误的 MessageBoxes。
有没有办法隐藏那些消息框?
在 winform WebBrowser 控件中有ScriptErrorsSuppressed
可以使用的属性,但在 SL 中没有。
我将不胜感激任何帮助。
尝试在 Internet Explorer 高级设置中关闭脚本调试。最终,该控件使用 MSHTML 来提供渲染,这反过来又从 IE 中获取了许多设置。
今天我在我的应用程序中回到了这个问题,我能够以某种方式解决它。因为我只需要显示一个页面 - 这些页面上没有太多的用户交互 - 我用这种方式解决了它。
在代码中,我使用带有属性的 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我已经添加了这个作为接受这个问题的答案。