CefSharp是用chromium内核开发的.net版本浏览器工具。目前只支持X86模式。所以在调试的时候要把平台改为X86

CefSharp开发指引:https://ourcodeworld.com/articles/read/173/how-to-use-cefsharp-chromium-embedded-framework-csharp-in-a-winforms-application

1、C#调用js

private void btnAlert_Click(object sender, EventArgs e)
    {
        this.browser.GetBrowser().MainFrame.ExecuteJavaScriptAsync("alert('这是c#调用的js,给文本框赋值!')");
        //txtAccount
        this.browser.GetBrowser().MainFrame.ExecuteJavaScriptAsync("document.getElementById('txtAccount').value='在C#里面给页面文本框进行赋值'");
    }

2、js调用C#

首要要创建被调用的C#对象和方法,注意方法名要小写,大写的时候,会调用失败!

public class CefAsyncJS
    {
        private string LoginAccount = ConfigurationManager.AppSettings["LoginAccount"];

public string getLoginAccount()
        {
            return LoginAccount;
        }
        public void setLoginAccount(string data)
        {
            LoginAccount = data ?? "";
        }

}

然后注册这个类

//注册C#对象,用来在js里面调用

//注意:RegisterAsyncJsObject的name必须是小写字母开头

//注意:CefAsyncJS类被JS调用的函数也必须是小写字母开头

CefSharpSettings.LegacyJavascriptBindingEnabled = true;
chromeBrowser.RegisterJsObject("cefAsyncJS", new CefAsyncJS(), BindingOptions.DefaultBinder);

这样,就能直接在js页面,调用C#方法

function SetLoginAccount(data) {
    cefAsyncJS.setLoginAccount(data);
}

function GetLoginAccount() {
    return cefAsyncJS.getLoginAccount();
}

最新文章

  1. CentOS 6 中安装Node.js 4.0 版本或以上
  2. 在 lua 中实现函数的重载
  3. oracle判断字段是否存在语句
  4. C/C++函数参数读取顺序2
  5. 转:内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区[C++][内存管理][转载]
  6. sql2008 附加数据库出错解决方法
  7. [示例]NSDictionary编程题-字典的排序应用(iOS6班)
  8. webservice basics
  9. Jave 鼠标点击画太极 PaintTaiji (整理)
  10. autocommit=0
  11. sql server2008报“评估已过期....."
  12. 记录一波由会话堵塞导致tomcat应用故障事件
  13. maven的安装及配置
  14. Openvswitch手册(9): Flow
  15. 关于发件人地址会自动增加BATV及prvs的问题处理方法
  16. java之 ------ 文件拷贝
  17. Python基础知识小结
  18. ZT Android4.2蓝牙基础架构学习
  19. number类型转化为string类型
  20. 7.1 - CRM系统

热门文章

  1. ThinkPHP重写路由,掩藏public/index.php
  2. SD341X-SD343H管网法兰式伸缩蝶阀厂家,SD341X-SD343H管网法兰式伸缩蝶阀价格 - 专题栏目 - 无极资讯网
  3. WIndows下 Pycharm 配置Anaconda和TensorFlow
  4. sql 获取当天开始时间 结束时间
  5. vue中的坑 --- 锚点与查询字符串
  6. 如何获取用户的地理位置? && html5 地理位置
  7. ios 开发之旅
  8. h5移动端设置键盘搜索
  9. 错误:严重: Servlet.service() for servlet [appServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is
  10. Js 合并 table 行 的实现方法