CefSharp内核浏览器之C#与js的互相调用
CefSharp内核浏览器之C#与js的互相调用
- js调用C#方法
- 1.注册js调用对象
- 2.创建JS类
- 3. HTML网页js调用
- C#调用js方法
- 1. html写法
- 2. C#调用
js调用C#方法
1.注册js调用对象
这是新版的注册方法,旧注册方法已经过时,官方已经抛弃,所以按照最新的写法,详情请查看https://github.com/cefsharp/CefSharp/issues/2990
//旧方法,官方已经抛弃
browser.RegisterJsObject("bound", new BoundObject(), options: BindingOptions.DefaultBinder);
//新方法,直接复制下面的就行
CefSharpSettings.LegacyJavascriptBindingEnabled = true;
CefSharpSettings.WcfEnabled = true;
browser.JavascriptObjectRepository.Register("jsEvent", new JsEvent(tbUrl), isAsync: false, options: BindingOptions.DefaultBinder);
注意该段代码要写在浏览器加入控件之前,否则网页会调用不到,报找不到方法的错误。我之前就是没有注意到,搞了大半天,没有调用成功。
比如下面的例子
browser.JavascriptObjectRepository.Register("jsEvent", new JsEvent(tbUrl), isAsync: false, options: BindingOptions.DefaultBinder);
this.splitContainer1.Panel1.Controls.Add(browser);
browser.Dock = DockStyle.Fill;
2.创建JS类
在第一步中我们注册对象使用了JsEvent()类
所以我们要创建一个类来存放js需要调用的方法
public class JsEvent
{TextBox url;public JsEvent(TextBox tbUrl){url = tbUrl;}//获取TextBox的内容public string getSrc(){return url.Text ";}
}
3. HTML网页js调用
function GetCef() {//控制台打印数据,验证一下console.log(jsEvent.getSrc());return jsEvent.getSrc();
}
做到这一步,一般来说js已经能正确的调用C#中的方法了。
C#调用js方法
C# 调用js就比较简单了,参照以下代码
1. html写法
加入一个id为 btn_play 的按钮
<button id="btn_play" >播放</button>
在script方法中实现 btn_play 的点击事件
<script type="text/javascript">$(function() {$("#btn_play").click(function(){var txt = GetCef();console.log("button.play---"+txt);});});
</script>
2. C#调用
//chromium browser
browser.GetBrowser().MainFrame.ExecuteJavaScriptAsync("document.getElementById('btn_play').click();");
经过上面的操作,我们就可以在C#中调用js方法了。是不是很简单。
CefSharp内核浏览器之C#与js的互相调用相关推荐
- Android集成三方浏览器之Crosswalk
上一篇讲解了腾讯 X5 内核的集成,这一篇是讲解 Crosswalk 的集成 Crosswalk 也是采用了Chromenium 内核,是一款开源的 web 引擎,开发者可以直接把 Crosswalk ...
- 【校招VIP】前端浏览器之性能和加载优化
考点介绍: 随着前端项目不断扩大,浏览器渲染的压力变得越来越重.配置好一点的计算机可以顺利地展现页面:配置低一些的计算机渲染页面的性能就不那么可观了.性能优化部分的面试题主要考察应试者对网站性能优化的 ...
- [转]Android 和 iPhone 浏览器之战,第 2 部分: 为 iPhone 和 Android 构建基于浏览器的应用程序...
简介: 本文是共两部分的系列文章 "Android 和 iPhone 浏览器之战" 的第 2 部分,主要关注为 iPhone 和 Android 开发基于浏览器的应用程序.在第 1 ...
- 浏览器之争:程序员眼里浏览器的地位 IE:我开了!
主流浏览器之争从上个世纪开就开始,已经持续了很长的时间.就在几年前,IE还是最主流的web浏览器.但现在形势完全不同了,人们都在笑话IE,纷纷转向其它浏览器.今天,我向大家分享一下针对IE的搞笑图片, ...
- 移动web时代已开启:腾讯X5内核浏览服务
随着移动互联网的快速发展,手机浏览器市场也变得异常火爆.当HTML5从技术变成标准并逐步成为现实.浏览器厂商纷纷推出自主研发的内核,X5内核浏览便是其中的佼佼者. X5内核浏览服务是什么? X5内核浏 ...
- Google 与微软的浏览器之争
浏览器再现"神仙打架". 整理 | 屠敏 头图 | CSDN 下载自东方 IC 出品 | CSDN(ID:CSDNnews) 从 IE 到 Chrome,再从 Chrome 到 E ...
- Netscape与IE的浏览器之争
Netscape与IE的浏览器之争 1992年,在伊利诺斯州大学里,一个20岁出头.尚未毕业的计算机科学专业的大学生,每天除了上课,就是在NCSA(美国的国家超级计算中心)工 作.这天,一群同年龄的大 ...
- 微软与网景与浏览器之争
一 1975年,当微软诞生的时候,比尔·盖茨只有19岁,他的员工只有3个,当年的营业收入仅1.6万美元.让微软腾飞的"决定性产品",便是比尔于1985年推出的Windows(视窗) ...
- 网景如何才能打败微软而赢得浏览器之战?
网景如何才能打败微软而赢得浏览器之战? 内容提要:比尔盖茨在<未来之路>中介绍了他是如何通过正反馈理论打败所有竞争对手,使微软系统成为行业标准的.微软依仗其在操作系统中的统治地位,它可以通 ...
最新文章
- 将NetBIOS名称解析为IP地址的常用方法
- DirectX11 With Windows SDK--22 立方体映射:静态天空盒的读取与实现
- 汇编程序-更灵活的定位内存地址方法
- HK-2000 数采仪 航空头接口定义
- 评分卡开发方法论scorecard
- 为什么在定义hashcode时要使用31这个数呢
- C#获取本机IP地址字符串
- .net MVC路由
- eDiary电子日记本
- beanfactory的实现类_ApplicationContext和BeanFactory的区别
- 精通CSS:高级Web标准解决方案(第2版)--前言
- hmcl手机版_hmcl启动器手机版
- 预备篇:一.元器件选型及飞控电路设计
- 给树莓派安装手柄驱动
- 究竟是昨天(2.3)立春还是今天(2.4)立春?易语言告诉你真相
- 脉歌蓝牙耳机线评测_以腔调和功能取胜 脉歌TX90运动挂脖式蓝牙耳机评测
- css3图片倾斜3d动画效果
- UE基础知识:虚幻引擎编辑器界面-英汉对照表
- 各大型网站架构分析收集 1
- DELLR740带外镜像安装系统
热门文章
- 【业务架构】价值链分析的直接指南
- Sublime Text 3-->汉化版
- 在iOS中进行Mapbox地图开发杂谈
- 常见bootloader介绍
- 梅雪争春未肯降,词客骚人费评章。不是一番寒彻骨,哪得梅花扑鼻香。
- 互联网常用词汇索引表
- JS原生实现简单的轮播图(完整代码,一看就懂)
- OpenAI完胜DOTA世界冠军,20行python代码带你领略其魅力
- .NET 夏普比率,波动率的公式讲解和代码实现运算
- 牛逼了!DeepFake变脸再次来袭,强势霸屏GitHub热榜!偏门应用“美女脱衣”还会再出现么?...