当前位置: 首页 > news >正文

Cefsharp js调用c#与c#调用js

在cefsharp63.02版本下注册绑定事件需要在绑定事件之前申明这段代码。否则不能绑定、报错;

CefSharpSettings.LegacyJavascriptBindingEnabled = true

C#代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using CefSharp;
using CefSharp.WinForms;
using System.IO;

namespace cefSharp
{
    public partial class Form1 : Form
    {
        ChromiumWebBrowser browser;
        public Form1()
        {
            InitializeComponent();
            browser = new ChromiumWebBrowser(@"C:\Users\Administrator\Desktop\cefSharp\cefSharp\test.html");
            browser.Dock = DockStyle.Fill;
            panel1.Controls.Add(browser);
            CefSharpSettings.LegacyJavascriptBindingEnabled = true;//新cefsharp绑定需要优先申明
            browser.RegisterJsObject("boud", new JsEvent(),new CefSharp.BindingOptions() { CamelCaseJavascriptNames = false } );//这个地方相当于注册了一个BO(浏览器对象,和window对象是平级的)
        }


        private void button1_Click(object sender, EventArgs e)
        {
            browser.ExecuteScriptAsync("oce_one()");//调用js
        }
    }
    public class JsEvent
    {
        public string MessageText { get; set; }
        public void ShowTest()
        {
            MessageBox.Show("this in c#.\n\r" + MessageText);


        }
        public void ShowTestArg(string ss)
        {
            MessageBox.Show("收到Js参数的调用\n\r"+ss);
        }
    }
}

JavaScript代码

function oce_one(){
    return "aaa";
}

bund.ShowTest();

 

相关文章:

  • JavaScript之Window 对象
  • javascript之Navigator 对象
  • javascript之Screen 对象
  • javascript之History 对象
  • JavaScript之Location 对象
  • JavaScript 存储对象
  • 寻址 far near
  • Session原理
  • DOM选择器
  • JavaScript 全局对象
  • CMake详解
  • CMake脚本编写
  • vs2015使用教程
  • vs项目配置
  • VS项目属性的一些配置项的总结
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • css布局,左右固定中间自适应实现
  • docker python 配置
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • Java小白进阶笔记(3)-初级面向对象
  • leetcode388. Longest Absolute File Path
  • mysql 5.6 原生Online DDL解析
  • Python爬虫--- 1.3 BS4库的解析器
  • Vue.js-Day01
  • 从伪并行的 Python 多线程说起
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 关于List、List?、ListObject的区别
  • 数据仓库的几种建模方法
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (三)elasticsearch 源码之启动流程分析
  • (转)visual stdio 书签功能介绍
  • (转载)hibernate缓存
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .net core使用ef 6
  • .NET Core中Emit的使用
  • .Net Web项目创建比较不错的参考文章
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .net下简单快捷的数值高低位切换
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116
  • [100天算法】-不同路径 III(day 73)
  • [AutoSAR 存储] 汽车智能座舱的存储需求
  • [C#]winform利用seetaface6实现C#人脸检测活体检测口罩检测年龄预测性别判断眼睛状态检测
  • [dart学习]第四篇:函数
  • [EFI]Lenovo ThinkPad X280电脑 Hackintosh 黑苹果引导文件
  • [excel与dict] python 读取excel内容并放入字典、将字典内容写入 excel文件
  • [FT]chatglm2微调
  • [hdu1561] The more, The Better 【树形DP】