javascript - 如何在 C# 中使用 chromium Web 浏览器获取 javascript 的返回值

标签 javascript c# cefsharp

如何使用 chromium 网络浏览器获取 javascript 的返回值。我知道如何为 DOM 元素赋值。但我不知道如何使用 cef Sharp 获取 DOM 元素的值。 我的示例代码是这样的。

//chromeBrowser = ChromiumWebBrowser object
String script = 
string.Format("document.getElementsByName('DOMElementName') 
[0].value;");
chromeBrowser.EvaluateScriptAsync(script).ContinueWith(x =>
        {
           // I want to use the returned value of the script above
        });

我怎样才能实现这个目标。

最佳答案

您可能对 official CefSharp FAQ 感兴趣他们在 GitHub 上有。

<小时/>

您需要等待 FrameLoadEnd 事件触发。只有在那之后你才能评估脚本。然后使用要在框架上执行的脚本字符串调用 EvaluateScriptAsync,然后返回一个包含操作结果的任务。

browser.FrameLoadEnd += (sender, args) =>
{
  var task = args.frame.EvaluateScriptAsync(script, null);

  task.ContinueWith(t =>
  {
    if (!t.IsFaulted)
    {
      var response = t.Result;
      var result = = response.Success ? (response.Result ?? "null") : response.Message;
      // TODO: do something with the result
    }
  }, TaskScheduler.FromCurrentSynchronizationContext());
};

关于javascript - 如何在 C# 中使用 chromium Web 浏览器获取 javascript 的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54724581/

相关文章:

javascript - element.queryselector 未在 Vim 中显示

c# - C# 中的 LINQ 查询使用动态字符串来 ORDER 数据

c# - 当内容高度可变时,列表框滚动条拇指改变大小

c# - 如何在运行时在 WPF 中创建 CefSharp ChromiumWebBrowser

c# - 如何使用 CefSharp 启用 Adob​​e Flash?

cefsharp - 允许用户使用 cefsharp 浏览器通过鼠标滚轮进行缩放

javascript - Jquery 脚本在桌面上表现得很奇怪

javascript - 获取 slider 以显示月份而不是数字

javascript - ng-change 不会触发数字输入类型

C# Mono 软调试器