【问题标题】:How to get value from GetElementById?如何从 GetElementById 中获取价值?
【发布时间】:2016-12-21 22:37:50
【问题描述】:

nxuybcbkbcbggkcwcbregrwyywbrgewb​​yrewyreyrwebyrwrwe 测试

【问题讨论】:

  • HtmlElementCefSharp 的上下文中无效。

标签: c# .net chromium-embedded cefsharp


【解决方案1】:
Browser.ExecuteScriptAsync();

发送要执行的javascript并且不期望任何回报,因此尝试将'nothing'(即void)分配给HtmlElement变量是不行的。

如果您希望向页面发送一些 javascript,并使用返回的内容,您需要使用 EvaluateScriptAsync()

这将返回一个Task<JavascriptResponse>,如果您尝试将它分配给Size,它仍然不起作用。坏消息是:JavascriptResponse 只能是基本数据类型(int、bool、string 等)。根据他们的文档:

只能返回微不足道的值(如 int、bool、string 等)- 不能 您自己定义的复杂(用户定义)类型。这是 因为没有(简单的)方法可以将随机 Javascript 对象暴露给 .NET 世界,至少今天不是。然而,一种可能的技术是 将您希望返回的 Javascript 对象转换为您的 .NET 代码 使用 Javascript JSON.toStringify() 方法转换为 JSON 字符串,然后 将该字符串返回给您的 .NET 代码。然后你可以解码那个字符串 使用 JSON.net 之类的东西放入 .NET 对象中。请参阅此 MSDN 链接 了解更多信息。 (https://msdn.microsoft.com/en-us/library/ie/cc836459(v=vs.94).aspx)

有关更多信息,请参阅: https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions

【讨论】:

  • 对原始类型的数组/字典的支持有限,如果您返回[0,1],您将获得一个可以解析为整数的对象列表。
猜你喜欢
  • 2020-01-27
  • 2017-10-01
  • 2018-04-07
  • 2021-12-26
  • 1970-01-01
  • 2016-08-24
  • 2012-11-29
  • 2018-08-20
  • 1970-01-01
相关资源
最近更新 更多