如何用.net cefsharp调javascript方法

JavaScript018

如何用.net cefsharp调javascript方法,第1张

CefSharp调用 js

CefSharp.WinForms.ChromiumWebBrowser wb

...

方式1. ExecuteScriptAsync 方法使用方式与 js 的 eval方法一样,异步执行,无返回值。

// xxx为js的方法名称

wb.ExecuteScriptAsync("xxx()")

// 为 js 的 变量jsVar赋值 'abc'

wb.ExecuteScriptAsync("jsVar='abc'")

方式2. EvaluateScriptAsync 方法使用方式与 js 的 eval方法一样,异步执行,有返回值。

Task<CefSharp.JavascriptResponse>t = wb.EvaluateScriptAsync("callTest2()")

// 等待js 方法执行完后,获取返回值

t.Wait()

// t.Result 是 CefSharp.JavascriptResponse 对象

// t.Result.Result 是一个 object 对象,来自js的 callTest2() 方法的返回值

if(t.Result.Result != null)

{

MessageBox.Show(t.Result.Result.ToString())

}

具体调用:

IBrowser browser = this._browser.GetBrowser()

if (browser.HasDocument)

{

IFrame mainFrame = browser.MainFrame

var js = "var f= function A(){ return $('img',$('#"+id+"'))} f()"

var task = mainFrame.EvaluateScriptAsync(js, null)// "(function() { var body = document.body, html = document.documentElementreturn Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight )})()", null)

//执行脚本

//browser.MainFrame.ExecuteJavaScriptAsync("document.getElementById('testid').click()")

//browser.MainFrame.ExecuteJavaScriptAsync("document.getElementById('testid2').value='123'")

task.ContinueWith(t =>

{

if (!t.IsFaulted)

{//返回结果

var response = t.Result

var result = response.Success ? (response.Result ?? "null") : response.Message

//html = result.ToString()

}

}, TaskScheduler.FromCurrentSynchronizationContext())

}

是cefsharp谷歌程序密令,解除方法:

CefSharp调用 js。

CefSharp.WinForms.ChromiumWebBrowser wb

ExecuteScriptAsync 方法使用方式与 js 的 eval方法一样,异步执行,无返回值。

// xxx为js的方法名称。

wb.ExecuteScriptAsync("xxx()")

// 为 js 的 变量jsVar赋值 'abc'

wb.ExecuteScriptAsync("jsVar='abc'")

EvaluateScriptAsync 方法使用方式与 js 的 eval方法一样,异步执行,有返回值。

Task<CefSharp.JavascriptResponse>t = wb.EvaluateScriptAsync("callTest2()")

扩展资料:

Google Chrome的特点是简洁、快速。GoogleChrome支持多标签浏览,每个标签页面都在独立的“沙箱”内运行,在提高安全性的同时,一个标签页面的崩溃也不会导致其他标签页面被关闭。此外,Google Chrome基于更强大的JavaScript V8引擎,这是当前Web浏览器所无法实现的。

另有手机版的Chrome浏览器,于2012年发布了Chrome浏览器移动版,提供IOS系统、安卓系统以及Windows Phone系统的Chrome浏览器,在保持浏览器原有特点的情况下。

实现了多终端使用浏览器,具有共享收藏历史信息等功能,是手机浏览器的一次巨大突破。随着Android系统的份额不断扩大而市场占有率不断飙升。