CefSharp执行javascript并获得价值

时间:2017-04-13 12:37:34

标签: javascript c# cefsharp

我使用CefSharp和从html文件加载的HTML编辑器。我得到了javascript代码来获取html编辑器的内容:

var markupStr = $('#summernote').summernote('code');

我需要在我的C#应用​​程序中返回markupStr。我目前有什么:

 var script = "$('#summernote').summernote('code');";
 var result = ChromiumWebBrowser.GetMainFrame().EvaluateScriptAsync(script).Result.Message;

我可以毫不费力地在CefSharp中执行JavaScript,但是,如何检索markupStr$('#summernote').summernote('code');设置的值?

1 个答案:

答案 0 :(得分:-1)

让我们假设你的脚本变量看起来像这样(或像这样的smth):

var myScript = @"(function () {
    return $('#summernote').summernote('code').val();
})();";

什么意味着返回值类型为string

然后你做一个简单的操作

var result = await myBrowserVariable.GetMainFrame().EvaluateScriptAsync(myScript)
.ContinueWith(t =>
{
    var result = t.Result;
    return (string)result;
});

现在'result'变量包含myScript javascript方法执行的结果。 另外,请不要忘记添加空检查(因为t.Result可以为null)并仅在当前帧已加载时调用EvaluateScriptAsync方法。