Geckofx,C#添加事件侦听器

本文关键字:事件 侦听器 添加 Geckofx | 更新日期: 2023-09-27 18:35:48

我正在使用 Geckofx 29。 如何在JavaScript事件上调用C#函数?

我搜索并找到了这个解决方案,但它不起作用:

public void AddEventListener_JScriptFiresEvent_ListenerIsCalledWithMessage()
        {
            string payload = null;
            browser.AddMessageEventListener("callMe", ((string p) => payload = p));
            browser.LoadHtml(
                @"<!DOCTYPE html>
                             <html><head>
                             <script type='text/javascript'>
                                window.onload= function() {
                                    event = document.createEvent('MessageEvent');
                                    var origin = window.location.protocol + '//' + window.location.host;
                                    event.initMessageEvent ('callMe', true, true, 'some data', origin, 1234, window, null);
                                    document.dispatchEvent (event);
                                }
                            </script>
                            </head><body></body></html>");
            browser.NavigateFinishedNotifier.BlockUntilNavigationFinished();
            Assert.AreEqual("some data", payload);
        }

event.initMessageEvent 无法执行...

请帮助我

Geckofx,C#添加事件侦听器

消息事件接口已更新。方法不再存在。在线程底部查看此处。根据你的 onload 函数的主体应该是:

var event = new MessageEvent('callMe', { 'view': window, 'bubbles': false, 'cancelable': false, 'data': 'some data' });
document.dispatchEvent(event);

希望这有帮助。