如何使用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...");