记录工作使用心得.
- static ChromiumwebBrowser web;
- private void Browserform_Load(object sender, EventArgs e)
- {
- try
- {
- web = new ChromiumWebBrowser("www.baidu.com");
- web.Dock = DockStyle.Fill;
- web.RequestHandler = re;
- web.FrameLoadStart += Web_FrameLoadStart;
- web.FrameLoadEnd += Web_FrameLoadEnd;
- web.LoadingStateChanged += Web_LoadingStateChanged;
- this.Invoke(new Action(() =>
- {
- this.Controls.Add(web);
- }));
- //browser 表示你的 CefSharp 对象使用它的 RegisterJsObject 来绑定你的. net 类
- web.RegisterJsObject("bound", new BoundObject());
- // 在实际的 JS 代码中, 你将使用这样的对象:
- //bound.myProperty; // 使用此语法访问属性
- //bound.myMethod(); // 使用此调用方法.
- }
- catch (Exception ex)
- {
- // MessageBox.Show(ex.ToString());
- }
将 js 事件通过注册进入页面, 通过
bound.myMethod(); 访问后台方法.
bound.MyProperty 访问后台属性.
- private async Task initmethodAsync()
- {
- string js_func = "";
- js_func += "var all = $(\"div[class='ng-scope']\"); for (i = 0; i < all.length; i++) { all[i].onclick = onNickName; }";
- js_func += "function onNickName() {bound.myMethod($(this).find('span').eq(0).text(),$(this).find('img').eq(0).attr('src'));};";
- JavascriptResponse x = await web.EvaluateScriptAsync(js_func);
- }
- C# 事件响应类:
- public class BoundObject
- {
- public string MyProperty { get; set; }
- public void MyMethod(string ShowNickName,string html)
- {
- try
- {
- Console.WriteLine("我来响应前台的的事件");
- }
- catch (Exception ex)
- {
- }
- }
- }
来源: http://blog.csdn.net/u010919083/article/details/78210868