Windows 窗体应用程序的 Web 浏览器控件不处理表单操作中的相对 URL?

Posted

技术标签:

【中文标题】Windows 窗体应用程序的 Web 浏览器控件不处理表单操作中的相对 URL?【英文标题】:Web Browser Control of Windows Form application not handle relative URL in form action? 【发布时间】:2021-12-02 14:51:39 【问题描述】:

我的 html 包含一个表单,该表单在 action 中有一个相对 URL,但它不起作用。

但是当它使用完整的 URL 时它工作正常。

那么在 Windows 应用程序的WebBrowser 控件中是否需要设置任何属性?

代码无效:

form method="post" action="/_abc/xyz?re_url=kn" id="formSubmit" 

工作代码:

form method="post" action="https://somesite.local/_abc/xyz?re_url=kn" id="formSubmit" 

【问题讨论】:

***.com/questions/2682091/… 【参考方案1】:

WinForms WebBrowser 控件依赖于旧版本的 Internet Explorer,问题在于浏览器会很慢,有时无响应,或者不符合标准,因为它已被 Microsoft 杀死以支持新的 Chromium - 基于边缘。

他们有一个适用于 WinForms、WPF 和 UWP 的控件。

它叫做WebView2,很容易上手,你只需要在微软网站上的getting started 和documentation 就可以了。

另一个选项是CefSharp,它也是基于铬的,并且在触摸屏方面提供了更多,但通常两者都是不错的选择。您可以在 Wiki 上找到 here。快速入门指南也很有帮助,可以在 here 找到。

两者也是开源控件。

如果您想使用基于 Gecko 的浏览器(例如 Firefox 的引擎),您可以使用GeckoFx。我找不到它的文档,但我找到了 this 可以帮助您入门的有用指南。有许多教程可供您使用。

如果你想保留当前浏览器,我相信你会遇到比切换到另一个控件更多的问题。

我在 MSDN 上找到了this thread,它谈到了相对图像路径,这与这里的问题几乎相同,只是它是一个网站的 url。这在 WebView2、CefSharp 和 GeckoFx 中已修复,因为它们使用最新标准,您可以修改帖子中的代码,但您不太可能会发现它是简单请求的最佳解决方案。

【讨论】:

以上是关于Windows 窗体应用程序的 Web 浏览器控件不处理表单操作中的相对 URL?的主要内容,如果未能解决你的问题,请参考以下文章

.NET的.NET控件

WinForm WebBrowser 控件背景颜色

如何在跨平台应用程序中嵌入 Web 浏览器控件?

Windows 窗体应用程序中的 HTML 编辑器 [关闭]

如何将 Windows 窗体浏览器控件的文档对象转换为 mshtml.IHTMLDocument2

Web开发中从WebForm到Backbone