在 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/
我正在尝试执行从 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/