【问题标题】:Load HTML Page inside CefSharp browser在 CefSharp 浏览器中加载 HTML 页面
【发布时间】:2014-04-22 07:25:13
【问题描述】:

我的 Windows 窗体应用程序 中有一个名为 CefSharp 的嵌入式 chromium 客户端。在应用程序启动时,我正在使用 c# 中的以下语句从项目资源中加载 cefsharp 中的网页:

 web_view.LoadHtml(File.ReadAllText(@".\HelloPage.html"), @".\HelloPage.html");

页面加载成功。现在我在网页上有一个按钮,我想导航到使用 jquery-mobile 设计的另一个页面,并在此按钮的单击事件中添加到项目资源中。我的网页上有一个按钮和链接来加载其他页面,如下所示:

<a id="myLink" class="ui-btn ui-corner-all ui-shadow ui-mini" href="Page2.html" >Rollout</a>

<button type="submit" id="submitData" runat="server" onclick="Page3.html;" class="ui-shadow ui-btn ui-corner-all ui-mini">Submit</button>

上面提到的两个事件都给了我错误加载页面。我尝试了另一种技术从 javascript 调用 c# 方法并调用以在该方法中加载我的页面,但无法实现。任何人都可以帮我解决这个问题。这是我在 c# 上的第一个项目。我想知道我在哪里做错了,或者我必须有哪些其他选择才能让它发挥作用。提前致谢。

【问题讨论】:

    标签: c# .net jquery-mobile chromium-embedded cefsharp


    【解决方案1】:

    改变这个;

    <button type="submit" id="submitData" runat="server" onclick="window.location.href='Page3.html';" class="ui-shadow ui-btn ui-corner-all ui-mini">Submit</button>
    

    【讨论】:

      【解决方案2】:

      老兄,它在数英里之外。 我建议在有效的网页(本地或远程托管)中尝试您的代码。以上代码:

      onclick="Page3.html;"
      

      不会很好地工作。尝试在 onclick 中引用一个 js 函数,重点是 - 首先获取一个工作网页 - 最好引用外部资产,例如 js 文件和 css 样式表。

      那你可以看看cef的包装。通常,您需要将 Web 资产设置为嵌入式资源并使用

      访问它们

      Assembly.GetManifestResourceStream

      但你离那还有很长的路要走。先把注意力集中在网页上。

      【讨论】:

      • 感谢您的回复:-)。请检查我的代码 sn-p 附加到问题,我已经尝试了 onclickhref 技术,我知道它应该重定向到目标页面,但在我的情况下不是。
      • 好的,让我们专注于锚标记。它更简单,因为它是一个简单的 URL。你试过 .\Page2.html 吗?还要添加处理程序 - 到目前为止最简单的是注册一个方案,'bg' 说:CefSharp.CEF.RegisterScheme("bl", new BgSchemeFactory());然后,您可以将锚点中的 href 更改为“bg://Page2.html”。您的 schemeFactory 现在应该返回新的 html。我希望这会有所帮助。如果没有结帐平房 - code.google.com/p/bungalow
      • 我明白了。我的页面没有加载,因为我将主页加载到浏览器中的方式。我使用的是 LoadHtml() 而不是 load()。一旦我将其更改为后者,它就可以正常工作。感谢您的考虑:-)
      猜你喜欢
      • 2015-06-19
      • 2017-08-05
      • 1970-01-01
      • 2017-09-13
      • 1970-01-01
      • 1970-01-01
      • 2017-08-16
      • 2017-09-13
      • 1970-01-01
      相关资源
      最近更新 更多