Я написал приложение, которое загружает страницу через форму веб-браузера. Загрузка страницы выполняется через webbrowser.navigate в функции webbrowser_DocumentCompleted. Это работает очень хорошо. Но если приложение не имеет сети, оно отображает «Эта страница не может быть отображена» - страница. Возможно ли отобразить пользовательскую страницу, а если да - как? Спасибо за помощь.Изменить «Эта страница не может быть отображена» на пользовательскую страницу
ответ
вы можете выполнить проверку сети в начале вашего приложения, и если она не удалась, вы можете перенаправить ее на страницу с ошибкой?
наоборот в вашем app.config вы можете использовать следующий код:
<system.web>
<customErrors>
<error statusCode="404" redirect="error.htm"/>
</customErrors>
всякий раз, когда ваше приложение получит HTTP код ошибки 404 он будет перенаправлять error.htm страница
Эта страница предоставляется вашим браузером и не приложение, поэтому нет, вы не можете его изменить.
Однако вы можете прочитать HTML-код, возвращаемый веб-браузером, проверить, что он не говорит об этом и действует соответствующим образом.
Пример:
//document completed function declaration
{
if (yourWebBrowser.Document.InnerHtml.Contains("This page cannot be displayed")
{
//Do Something
}
}
Yo может создать специальную страницу ошибки и отобразить его для нескольких статусов ошибок с вашего web.config
.
Пользовательские страницы ошибки:
Когда возникает необработанное исключение в приложении ASP.NET отображается один из трех типов страниц ошибок:
- за исключением Подробности Желтый экран страницы ошибок Death ,
ошибка Желтый экран страницы ошибок Смерть или
Пользовательская ошибка р возраст
По умолчанию все типы ошибок вызывают отображение той же страницы пользовательских ошибок. Тем не менее, вы можете указать другую страницу пользовательских ошибок для определенного HTTP status code
с использованием дочерних элементов <error>
в разделе <customErrors>
. Например, чтобы иметь другую страницу ошибки отображается в случае страницы не найдена ошибка, которая имеет код HTTP
статуса 404
, обновите раздел <customErrors>
включить следующую разметку:
<customErrors mode="RemoteOnly" defaultRedirect="~/ErrorPages/Oops.aspx">
<error statusCode="404" redirect="~/ErrorPages/404.aspx" />
</customErrors>
Один из способов сделать он должен обрабатывать метод Navigated вашего WebBrowser, а затем попытаться получить доступ к свойству Domain объекта Document объекта WebBrowser. Если он не может получить доступ к домену (например, когда сервер не работает или не существует), он выдаст ошибку. Затем вам просто нужно поймать ошибку и написать свой собственный HTML непосредственно в объект документа WebBrowser, например:
Private Sub WebBrowser1_Navigated(sender As Object, e As System.Windows.Forms.WebBrowserNavigatedEventArgs) Handles WebBrowser1.Navigated
Dim doc As HtmlDocument = WebBrowser1.Document
Try
Dim s As String = doc.Domain
Catch ex As Exception
WebBrowser1.Document.Write("<html><body><br/><h1>The site you are trying to reach is offline or hasn't been set up yet. Please contact your system administrator.</h1></body></html>")
End Try
End Sub
Добро пожаловать в SO, при ответе старайтесь избегать просто публикации блока кода. Вместо этого, найдите несколько минут, чтобы объяснить код и почему он работает. Для получения хорошего ответа см. [Рекомендации сообщества] (https://stackoverflow.com/help/how-to-answer). – LightBender
- 1. xampp-Эта страница не может быть отображена
- 2. кнопка иногда перенаправляет на «Эта страница не может быть отображена»
- 3. Ожидание IE «Эта страница не может быть отображена» Страница
- 4. Страница не может быть отображена
- 5. Эта страница не может быть отображена в IIS
- 6. VB.NET Button Click event Эта страница не может быть отображена
- 7. Страница не может быть отображена на https
- 8. URL Rewrite вызывает «Эта страница не может быть отображена»
- 9. XML-файл «Эта страница не может быть отображена» в System32
- 10. IE10 IE11 отображает «Эта страница не может быть отображена» На большой DOM - работает в firefox
- 11. Невозможно отладить приложение ASP.NET - «страница не может быть отображена»
- 12. Страница не может быть отображена на странице с автоматическим обновлением
- 13. Страница IE10 не может быть отображена, другие браузеры могут
- 14. Страница ASP .Net не может быть отображена Ошибка
- 15. «Эта страница не может быть отображена» ошибка на длительных ColdFusion 9 страницы
- 16. Ошибка IE 11: Эта страница не может быть отображена. Где, как он отлично работает на Chrome
- 17. Ошибка безопасности браузера: «Эта страница не может быть отображена из-за нарушения безопасности»
- 18. PHP get_result(), влекущие Страница не может быть отображена
- 19. Управление веб-браузером дает страницу не может быть отображена ошибка
- 20. ASP.NET - ERR_EMPTY_RESPONSE/Соединение было сброшено/страница не может быть отображена
- 21. Как исправить ошибку «Эта страница не может быть отображена» в ASP.NET?
- 22. MVC - «Эта страница не может быть отображена» - IE только без исключения
- 23. Массив не может быть отображена
- 24. Ошибка: запрошенная вами страница не может быть отображена прямо сейчас
- 25. Internet Explorer 10 «Эта страница не может быть отображена» При загрузке моего сайта
- 26. Эта страница не может быть отображена - Asp.Net MVC3 в IIS 8.5 Windows Server 2012
- 27. Эта страница не может быть отображена при вызове длинной хранимой процедуры
- 28. C# - Как определить, возвращается ли страница веб-сайта с контентом «Эта страница не может быть отображена» с использованием Watin?
- 29. содержание не может быть отображена в рамке
- 30. Концептуальная сторона не может быть отображена на сторону объекта?
Код, приведенный в примере, не работает. – tedder84
InnerHtml не известен. – tedder84
@ tedder84 вот что я имел в виду под «примером», он не тестировался –