c# - 如何使用 cefsharp 将输入传递给 javascript 函数

标签 c# wpf cefsharp

我正在尝试将 CefSharp WebView 添加到我的 WPF 应用程序中,以代替我们使用的原始 WebBrowsers。 WebBrowser 有一个 InvokeScript 函数(http://msdn.microsoft.com/en-us/library/cc452443(v=vs.110).aspx),它允许您调用 JavaScript 函数,并可选择将输入的 obj 数组传递给该 JS 函数。

有没有什么方法可以对 CefSharp WebView 做类似的事情,我可以将输入参数传递给 JavaScript 函数?例如,我可以这样做:

this.webBrowser.InvokeScript("scriptName", input0, input1, input2);

对于 WebBrowser,是否有任何等效功能或多个功能允许 CefSharp WebView 实现此功能?

最佳答案

我想出了如何做我想做的事...而且相对简单。

如果你想要 WebBrowser 的 InvokeScript 函数的功能

this.webBrowser.InvokeScript("functionName", input0, input1, input2);

使用 CefSharp WebView 然后你只需要做这样的事情:

webView.ExecuteScript(String.Format("functionName({0},{1},{2});", input0, input1, input2));

您必须确保正确转义任何字符串参数,因为您正在调用一个 javascript 函数,其中输入将填充您的值,因此将被视为字符串文字。

如果您真的不想更改您的代码,并且您正在用 WebView 替换 WebBrowser,那么您可以制作一个扩展方法,将“InvokeScript”添加到 WebView。

关于c# - 如何使用 cefsharp 将输入传递给 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25269534/

相关文章:

c# - 使用 IValueConverter 验证可为 null int

c# - 在循环 wpf 中执行下一个代码之前等待

c# - CefSharp 和跨域

c# - 在 CollectionChanged 事件处理程序中从 ObservableCollection 中移除一个项目

c# - 从字符串中获取多个数字

c# - 在其他类中引用 Windows 窗体元素

c# - 使用 WPF 和 EF CodeFirst 构建企业 CRUD 应用程序

c# - CefSharp - 捕获资源响应数据

c# - XElement => 在运行时添加子节点

C#自定义控件重绘慢