2011-02-08 1 views
2

Я разрабатываю приложение OLC Silverlight, и мне нужно показывать в нем веб-страницы - я бы хотел сделать это с помощью элемента управления WebBrowser, но во время загрузки страницы я получаю множество MessageBoxes с JavaScript ошибки.Отключение ошибок JavaScript в элементе управления WebBrowser в Silverlight

Есть ли способ скрывать эти MessageBoxes?

В управлении winform WebBrowser есть свойство ScriptErrorsSuppressed, которое может быть использовано, но в SL нет.

Буду признателен за любую помощь.

ответ

1

Сегодня я вернулся к этой проблеме в своем приложении, и я смог как-то ее решить. Потому что мне нужно показывать только страницы - без особого взаимодействия с пользователем на этих страницах - я решаю это так.

В коде я создаю html с iframe с атрибутом 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 на него.

P.S. Я добавил это как ответ, чтобы принять этот вопрос.

1

Попробуйте отключить отладку скриптов в расширенных настройках интернет-исследователей. В конечном итоге контроль использует MSHTML для доставки рендеринга, который, в свою очередь, получает множество настроек из IE.

+1

Я отключил отладку сценария в IE, но проблема все еще происходит. Так что это проблема с контролем. –

+0

У меня такое чувство, что это можно сделать с помощью отражения, но я не вижу для этого хорошего метода;) –