1. 程式人生 > >Cefsharp js呼叫c#與c#呼叫js

Cefsharp js呼叫c#與c#呼叫js

原文地址出:https://github.com/cefsharp/CefSharp/issues/2246

在cefsharp63.02版本下注冊繫結事件需要在繫結事件之前申明這段程式碼。否則不能繫結、報錯;

CefSharpSettings.LegacyJavascriptBindingEnabled = true

工程檔案與文章(https://www.2cto.com/kf/201801/713008.html)相似;

由於本人還在研究,不勝求解;又因才疏學淺,不足之處,還望前輩們指出;

附原始碼如下:

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 } );
        }


        private void button1_Click(object sender, EventArgs e)
        {
            browser.ExecuteScriptAsync("oce_one()");
        }
    }
    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);
        }
    }
}

相關推薦

Cefsharp js呼叫c#c#呼叫js

原文地址出:https://github.com/cefsharp/CefSharp/issues/2246在cefsharp63.02版本下注冊繫結事件需要在繫結事件之前申明這段程式碼。否則不能繫結、報錯;CefSharpSettings.LegacyJavascriptB

Cefsharp js呼叫c#c#呼叫js

原文地址出:https://github.com/cefsharp/CefSharp/issues/2246在cefsharp63.02版本下注冊繫結事件需要在繫結事件之前申明這段程式碼。否則不能繫結、報錯;CefSharpSettings.LegacyJavascriptB

atitit.js c# java交互html5化的原理總結.doc

pad 托管 works onclick rgb sar com 2.0 swing atitit.js 與c# java交互html5化的原理與總結.doc 1. 實現html5化界面的要解決的策略 1 1.1. Js交互 1 1.2. 動態參數個

JS----直接呼叫函式call呼叫的區別 (函式的三種呼叫方式介紹)

直接呼叫 直接呼叫函式是最常見 最普通的方式,直接以函式附加的物件作為呼叫者, 在函式後括號內傳入引數來呼叫函式 例如: window.alert("測試程式碼"); 其中呼叫者如果是window可以省略, 即直接alert("測試程式碼"); 以call() 方法

C C++ 介面函式相互呼叫

文章目錄 一、C 或 C++ 編譯的四個步驟 (一) 預處理 (二) 編譯 (三) 彙編 (四) 連結 二、C 與 C++ 介面相互呼叫的關鍵 三、extern "C" 四、C 函式呼叫 C++ 介面

cc++相互呼叫機制分析實現

c++通常被稱為Better c,多數是因為c++程式可以很簡單的呼叫c函式,語法上基本實現相容。最常用的呼叫方式就是c++模組呼叫c實現的dll匯出函式,很簡單的用法,使用extern "C"將c標頭檔案或者函式修飾下。 本文主要涉及到在c模組中如何呼叫c++函式,或者換個名字,extern

個人C++速成筆記(1) -- C++C不一樣的地方:行內函數、預設引數、函式過載、函式模板、庫函式的呼叫

之前學過C,現在想稍微學習下C++,由於上班,只能利用平時的空閒時間學習,記錄一下學習歷程,激勵自己有始有終,部落格內容主要記錄C與C++不同的地方。                    

C++ c# 模組 之間相互呼叫

using namespace System; using namespace System::Reflection; namespace adapter {     public ref class wrapper     {     private:         static Assembly^ dl

C++呼叫Android Android呼叫C++ 例子

                現在我們在Android上玩到的遊戲,大都是由C++編寫的,然後通過NDK編譯,才能執行在Andr

CC++相互呼叫問題

在專案中融合C和C++有時是不可避免的,在呼叫對方的功能函式的時候,或許會出現這樣那樣的問題,但只要我的C程式碼和我的C++程式碼分別都能成功編譯,那其他就不是問題。近來在主程式是C語言,而呼叫C++功能函式的時候,C++的*.h標頭檔案都能找到,功能函式也都定義了,最重要的

CC++混合程式設計問題:.C++呼叫.C檔案時出現:undefined reference to `xxxxx()'

本人使用qt的介面和opengl功能模擬演算法,該演算法需要在嵌入式中執行,因此需要用純C編寫,此時涉及到在C++寫的qt介面檔案中呼叫C檔案的庫函式,原先以為只需在C++中把C的.h檔案包含進去就可以正常使用,後來發現,使用這種方法時,在程式碼編寫時,C++檔案裡可以直接連

C++呼叫Android Android呼叫C++ 例子

現在我們在Android上玩到的遊戲,大都是由C++編寫的,然後通過NDK編譯,才能執行在Android上。而C++與Android之間的互動,通過NDK這個編譯工具。那麼C++與Android之間是如何互動的? Android呼叫C++,我們通過從C++返回一個Stri

NDK開發 從入門到放棄(四:JNI函式、CC++呼叫函式的區別)

前言 在之前的文章中我們看到過如下C++程式碼: jclass clazz = env->FindClass("***/***/JNIDynamicUtils"); FindClass就屬於jni函式。此文就來稍微講解下一些常用的jni函式。

CC++之間相互調用

end att toolbar 處理 處理器 執行文件 客戶 c語言項目 title http://www.cnblogs.com/luxiaoxun/p/3405374.html 1、導出C函數以用於C或C++的項目 如果使用C語言編寫的DLL,希望從中導出函數給C或C+

C/C++C#之間類型的對應

border system pcs left 類名 gid tab out param 最近在研究pos打印機相關功能, 調用winapi以及跨進程通信等,都涉及到類型之間的轉換。 C/C++ C# HANDLE, LPDWOR

JAVAC++,CC++的差別

-m content 才幹 hit 沒有 span 自增 ng- data- 首先來分析JAVA與C++的差別: JAVA是純面向對象的語言,而C++是基於面向對象過程的語言。 JAVA有著垃圾回收機制。它的語法是C+&#

CC++的函數聲明中省略參數的不同意義

style clu nts 這一 too spa 好奇心 函數聲明 fun 一直都以為C/C++中形如 int func(); 這樣的函數聲明其意義就是一個參數 void(沒有參數)的函數。然而今天在看C++的時候突然看到這麽一句: 對於帶空參數表的函數,

Unity中的C#C++交互<微信牛牛源碼

ets main rom new ref enume manually apply 渲染 演示了一個渲染三角形的例子 微信牛牛源碼(h5.hxforum.com) 聯系方式170618633533企鵝2952777280 微信Tel17061863533 源碼出售,平臺出租

CC++的內存機制的比較

內存;堆;棧C語言與C++內存非常相似,這也是我一直搞不清楚他的原因;下面梳理一下他們之間的區別: 1、先說C語言的內存機制棧 位於函數內的局部變量(包括函數實參),由編譯器負責分配和釋放,函數結束,棧變量失效;堆 由程序員用malloc()/calloc()/realloc()

【總結】C++C#中的static靜態修飾符

this sea const 數據 一切都 UC 限制 有一個 字段 重點 靜態類(sealed+abstract) 靜態構造函數(無參,無限制符,自動執行一次) 靜態變量(類級別,實例無關,靜態存儲區中) 靜態方法(不能被重寫) 靜態局部變量(始終存在) 靜態本質是實