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

我正在尝试将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实现这一function?

我想出了如何做我想要的……而且相对简单。

如果您想要WebBrowser的InvokeScriptfunction的function

 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的扩展方法。

我试过上面的function,没用。 终于弄清楚了,每个占位符缺少引号。

像这样的东西:

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

您可以从webView执行JavaScrip

 webView.ExecuteScript("document.getElementById...");