最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

wpf - How to traplisten javascript function or events in cefsharp - Stack Overflow

programmeradmin3浏览0评论

I am trying to use cefSharp for a WPF application. I can find "how to call a Javascript methods from .Net. But is there a way where I can get notified for Javascript functions or events in .Net?

e.g. if there is a Javascript function (with and without param) I can get the notification with or without values in .Net.

I am trying to use cefSharp for a WPF application. I can find "how to call a Javascript methods from .Net. But is there a way where I can get notified for Javascript functions or events in .Net?

e.g. if there is a Javascript function (with and without param) I can get the notification with or without values in .Net.

Share Improve this question edited Jan 19, 2018 at 12:03 McMillan Cheng 3801 gold badge7 silver badges21 bronze badges asked Jan 21, 2015 at 12:43 nishantcopnishantcop 1,0171 gold badge10 silver badges25 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 12

In short, YES! There's bindings available for:

c# -> js use

webBrowser.ExecuteScriptAsync(script);

js -> c# use

webBrowser.RegisterJsObject(A_NAME_FROM_JS, objectToBind);

Then from js you can call:

window.A_NAME_FROM_JS.MethodOnObj()

and this will invoke the

MethodOnObj()

on the passed

objectToBind

It works like a charm. Let me know if you've an issue and I'll help further!

The RegisterJsObject and ExecuteScriptAsync methods are both deprecated now. I found another solution that CefSharp supports here:

https://github./cefsharp/CefSharp/wiki/Frequently-asked-questions#JSEvent

More detailed information is here: https://github./cefsharp/CefSharp/issues/2775#issuement-498454221

Essentially, from your javascript code on page, you can call:

CefSharp.PostMessage(someDataYouWantToPassBack)

And in C#, you register the event to your browser:

browser.JavascriptMessageReceived += OnBrowserJavascriptMessageReceived;

private void OnBrowserJavascriptMessageReceived(object sender, JavascriptMessageReceivedEventArgs e) { }
发布评论

评论列表(0)

  1. 暂无评论