在 GeckoFX 33 中从 C# 调用 Javascript

Call Javascript From C# in GeckoFX 33

我正在尝试执行从 C# 到 GeckoFX 控制器中加载的文档的 javascript 调用,我正在这样做:

public void evaluateScript(string command)
{            
    System.Diagnostics.Debug.WriteLine("evaluateScript: " + command);
    using (Gecko.AutoJSContext context = 
        new AutoJSContext(geckoWebBrowser1.Window.JSContext))
    {
            string result;
            context.EvaluateScript(
                command, 
                (nsISupports)geckoWebBrowser1.Window.DomWindow, 
                out result);
    }
}

但这行不通,我只找到了调用 geckoWebBrowser1.Navigate('javascript:functionName(1,2);'); 的解决方案,但是有了这个,我无法从 functionName 恢复 return 数据并使用 Navigate进行 JavaScript 调用我认为是错误的。有没有办法在 DOM 中调用 JavaScript 函数并在 C# 中接收它们的数据?

我找到了解决方案,在版本 33 中,API 发生了一些变化,它更简单,因为默认情况下,如果您通过参数,return结果直接。

public void evaluateScript(string command)
        {

            System.Diagnostics.Debug.WriteLine("evaluateScript: " + command);
            using (Gecko.AutoJSContext context = new AutoJSContext(geckoWebBrowser1.Window.JSContext))
            {
                var result = context.EvaluateScript(command, geckoWebBrowser1.Window.DomWindow);
            }
        }

在旧版本中,需要指定 EvaluateScript 的上下文,我在这个 URL 中找到了示例:https://nhabuiduc.wordpress.com/2014/09/18/geckofx-net-webbrowser-setup-and-features/