如何在 cefsharp 中 trap/listen javascript 函数或事件
How to trap/listen javascript function or events in cefsharp
我正在尝试将 cefSharp 用于 WPF 应用程序。 I can find "how to call a Javascript methods from .Net。但是有没有办法让我收到 .Net 中 Javascript 函数或事件的通知?
例如如果有一个 Javascript 函数(带和不带参数),我可以在 .Net 中获得带或不带值的通知。
简而言之,是的!
绑定可用于:
c# -> js 使用
webBrowser.ExecuteScriptAsync(script);
js -> c# 使用
webBrowser.RegisterJsObject(A_NAME_FROM_JS,
objectToBind);
然后从js你可以调用:
window.A_NAME_FROM_JS.MethodOnObj()
这将调用
MethodOnObj()
已通过
objectToBind
它就像一个魅力。如果您有任何问题,请告诉我,我会进一步提供帮助!
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#
中,您将事件注册到您的浏览器:
browser.JavascriptMessageReceived += OnBrowserJavascriptMessageReceived;
private void OnBrowserJavascriptMessageReceived(object sender, JavascriptMessageReceivedEventArgs e) { }
我正在尝试将 cefSharp 用于 WPF 应用程序。 I can find "how to call a Javascript methods from .Net。但是有没有办法让我收到 .Net 中 Javascript 函数或事件的通知?
例如如果有一个 Javascript 函数(带和不带参数),我可以在 .Net 中获得带或不带值的通知。
简而言之,是的! 绑定可用于:
c# -> js 使用
webBrowser.ExecuteScriptAsync(script);
js -> c# 使用
webBrowser.RegisterJsObject(A_NAME_FROM_JS, objectToBind);
然后从js你可以调用:
window.A_NAME_FROM_JS.MethodOnObj()
这将调用
MethodOnObj()
已通过
objectToBind
它就像一个魅力。如果您有任何问题,请告诉我,我会进一步提供帮助!
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#
中,您将事件注册到您的浏览器:
browser.JavascriptMessageReceived += OnBrowserJavascriptMessageReceived;
private void OnBrowserJavascriptMessageReceived(object sender, JavascriptMessageReceivedEventArgs e) { }