Cefsharp使用教程四( js回调,C#方法)
来源:互联网 发布:微霸科技软件 编辑:程序博客网 时间:2024/05/21 10:20
1.基本的同(异)步js操作
browser.GetBrowser().MainFrame.ExecuteJavaScriptAsync("document.getElementById('testid').click();"); browser.GetBrowser().MainFrame.ExecuteJavaScriptAsync("document.getElementById('testid2').value='123'");
2.其他Frame操作
string script = "if(document.getElementById('img_out_10000')){ document.getElementById('img_out_10000').click(); }"; var list = browser.GetBrowser().GetFrameNames(); if (list.Count > 1) { browser.GetBrowser().GetFrame(list[1]).ExecuteJavaScriptAsync(script); }
3.如何调用Javascript方法返回的结果呢?
如果您需要评估代码,返回一个值,使用Task EvaluateScriptAsync(string script, TimeSpan? timeout)方法。 JavaScript代码是异步执行的,因此使用.NET Task类返回一个响应,其中包含错误消息,结果和一个成功(布尔)标志。
// Get Document Height var task = frame.EvaluateScriptAsync("(function() { var body = document.body, html = document.documentElement; return Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight ); })();", null);task.ContinueWith(t => { if (!t.IsFaulted) { var response = t.Result; EvaluateJavaScriptResult = response.Success ? (response.Result ?? "null") : response.Message; } }, TaskScheduler.FromCurrentSynchronizationContext());
4.你如何暴露的.NET类为Javascript?
public class BoundObject { public string MyProperty { get; set; } public void MyMethod() { // Do something really cool here. } } // ... //browser表示你的CefSharp对象使用它的RegisterJsObject来绑定你的.net类 browser.RegisterJsObject("bound", new BoundObject()); //在实际的JS代码中,你将使用这样的对象:bound.myProperty; // 使用此语法访问属性 bound.myMethod(); // 使用此调用方法。
阅读全文
0 0
- Cefsharp使用教程四( js回调,C#方法)
- CefSharp使用教程(一)
- CefSharp使用教程二
- CefSharp使用教程三(Cookie处理)
- C#中CefSharp的简单使用
- 使用CEfSharp之旅(2) js前台事件执行后台方法
- 使用 CefSharp 在 C# App 中嵌入 Chrome 浏览器
- WPF中使用cefsharp
- winfrom中使用CefSharp
- CefSharp整合到C#中
- CefSharp 与 js 相互调用
- wpf CefSharp 与 js交互
- CefSharp开源库的使用(一)
- 使用cefSharp的坎坷经历
- 使用CEfSharp之旅(4)cefsharp 调用F12
- 使用CEfSharp之旅(5)CEFSharp 隔离Cookie
- C#教程:KeyPress事件使用实例|方法
- js刷新页面方法大全使用教程
- 深入理解bootloader_3----- ARM体系结构
- Nginx开启gzip
- 循环题目
- to_char()和to_date()的用法
- IRQL APC_LEVEL and APC
- Cefsharp使用教程四( js回调,C#方法)
- 循环问题——实题解答
- poi将word docx转化为html
- 自绘CListCtrl控件中,使用了OnNMClick消息后,外界对话框中再使用时,不能响应消息
- 如何将另一个安装程序打进自己的安装包中
- GPUImageMovieWriter黑屏问题
- springmvc中@RequestParam和@PathVariable的区别和使用
- android 查看图片、保存图片
- php的memcache和memcached扩展区别