【问题标题】:Visual Basic - How to overwrite webbrowser error pages?Visual Basic - 如何覆盖网络浏览器错误页面?
【发布时间】:2013-10-26 23:55:02
【问题描述】:

我正在使用 Visual Studio (Visual Basic),我有一个 Webbrowser 对象,我想知道如何覆盖 IE 错误页面。我的意思是“无法加载网页”等页面。和“无法导航到页面”。类型错误。 (Win7中带有胖“i”图标的那些)

【问题讨论】:

  • 不清楚!您想捕获 404 等,并显示一些其他内容吗?
  • 基本上是想改一下IE系统的错误页面,比如用户没有上网时出现的页面。
  • 您可以尝试处理WebBrowser.Navigating (WinFroms WebBrowser) 并检查类似res://ieframe.dll/dnserror.htm#http://127.0.0.1:1111/ 的URL。如果匹配,请重新导航到您选择的本地 URL,或执行WebBrowser.DocumentText = "custom error info" 之类的操作。不过,这将是特定于 IE 版本的。
  • 正确的做法是处理NavigateError事件。查看thisthis 了解更多信息。
  • 好吧,我刚刚投了赞成票,因为这是一个有趣的问题。很确定我会在浏览器控件之外完成它,但是方法 B 总是很好。

标签: vb.net webbrowser-control visual-studio-2013


【解决方案1】:

您可以在 Web 服务器(IIS、Apache 等)上自定义这些错误页面。

【讨论】:

  • 我猜 OP 正在询问如何覆盖服务器不可用时显示的 IE 默认页面。在这种情况下,这无济于事。例如。尝试导航到http://127.0.0.1:1111。浏览器以res://ieframe.dll/dnserror.htm#http://127.0.0.1:1111/结束。
  • 我明白了。应该可以先尝试连接(在 Webbrowser 对象之外),如果无法建立连接,则显示错误消息,然后如果连接可用,则在 Webbrowser 对象中加载页面。
  • 至少,WebBrowser之外的连接测试应该有一个合理的超时时间。在每个WebBrowser 导航请求(可能是链接单击或表单提交)之前进行此类检查会增加大量等待并且可能会让用户感到烦恼。 OP 实际上提出了一个很好的问题,我不知道为什么它被否决了。
猜你喜欢
  • 1970-01-01
  • 2014-09-23
  • 1970-01-01
  • 1970-01-01
  • 2018-05-13
  • 2012-09-03
  • 1970-01-01
  • 2014-11-21
  • 1970-01-01
相关资源
最近更新 更多