我正在尝试将cefSharp用于WPF应用程序。 I can find "how to call a Javascript methods from .Net。但有没有办法可以获得.Net中的Javascript函数或事件的通知?
e.g。如果有一个Javascript函数(有和没有param)我可以在.Net中获取带或不带值的通知。
答案 0 :(得分:10)
总之,是的! 可用于以下内容的绑定:
c# - > js使用
webBrowser.ExecuteScriptAsync(脚本);
js - > c#use
webBrowser.RegisterJsObject(A_NAME_FROM_JS, objectToBind);
然后从js你可以打电话:
window.A_NAME_FROM_JS.MethodOnObj()
这会调用
MethodOnObj()
传递
objectToBind
它就像一个魅力。如果您有问题,请告诉我,我会进一步提供帮助!
答案 1 :(得分:0)
现在不推荐使用RegisterJsObject
和ExecuteScriptAsync
方法。我在这里找到了CefSharp
支持的另一种解决方案:
https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions#JSEvent
更多详细信息在这里: https://github.com/cefsharp/CefSharp/issues/2775#issuecomment-498454221
基本上,从页面上的javascript
代码中,您可以调用:
CefSharp.PostMessage(someDataYouWantToPassBack)
然后在C#
中,将事件注册到浏览器:
浏览器。 JavascriptMessageReceived + = OnBrowserJavascriptMessageReceived;
private void OnBrowserJavascriptMessageReceived(object sender, JavascriptMessageReceivedEventArgs e) { }