【问题标题】:WebBrowser control - enter and keep offline modeWebBrowser 控制 - 进入并保持离线模式
【发布时间】:2014-10-18 18:15:10
【问题描述】:

我想手动将 HTML 加载到 Web 浏览器控件中,并确保它不会产生任何 Internet 流量,因此请尽其所能显示内容。

如 MSDN 中所述,WebBrowser.IsOffline 是只读的。

有没有办法设置它(不使用反射黑客)?

或者我是否必须为此使用第 3 方控件:

【问题讨论】:

  • 如果您使用第三方控件,请不要使用您链接的控件,试试这个 - htmlrenderer.codeplex.com
  • @EkoostikMartin:感谢您的链接,我特别喜欢这部分:100% 托管 C# 代码,我发现的那个是用 C++ 编写的,因此需要 regsvr .不是破坏交易,而是偏向于托管代码,如果没有发布其他选项,我会考虑使用它。您可以将其发布为答案 - 我一定会支持它。
  • 你要使用IE缓存吗?
  • @Joiner:不,我将手动提供 HTML。
  • @Joiner:我一直在寻找一种方法来安全地显示网页,而无需访问互联网并下载更多内容。

标签: c# vb.net winforms webbrowser-control offline-browsing


【解决方案1】:

您可以将WebBrowser.AllowNavigation 设置为False

控件在其初始页面加载后是否可以导航到另一个页面。

【讨论】:

  • 我不断收到与此类似的错误:snag.gy/fewZq.jpg,ScriptErrorsSuppressed 似乎有帮助,但我仍然不确定它是否正在执行任何外部请求以加载。例如,如果有一个 Java 调用,比如重定向到另一个页面,它会触发吗?
  • 我可以虚拟地切断 Web 浏览器控件的线路吗?它应该始终显示为脱机,即使网络可用于应用程序的其余部分。
  • 有趣,但可能不会阻止 ajax 回调,即动态 HTML。不过我会在当天晚些时候检查出来。 +1 但不接受,以防其他人有其他想法。不过不用担心,如果 24 小时内没有其他人提供意见,我会接受。
  • 设置DocumentTextAllowNavigation = False 似乎非常接近,即成功阻止了重定向WebBrowser1.DocumentText = "<BODY onLoad='window.location = ""http://www.page-2.com"";'>"。但是,如果有的话,我更愿意禁用 JS 弹出窗口,这样用户就可以看到内容。像这样的东西:WebBrowser1.DocumentText = "<BODY onLoad=""alert('hello world!')"">" 不幸的是,there is no way to disable JS in a client application。那时我可能会使用第 3 方 HTML 渲染器。接受你的回答...
猜你喜欢
  • 2010-12-08
  • 1970-01-01
  • 1970-01-01
  • 2011-09-10
  • 2012-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多