如何通过GeckoFX执行Javascript命令

时间:2013-07-23 06:59:27

标签: c# gecko geckofx

我尝试通过GeckoFX和C#执行类似alert('test message')的javascript命令 但我不能。

我使用Navigate和ExecuteCommand

尝试没有结果

我的代码是

    int i=0;    
    GeckoWebBrowser webBrowser
    webBrowser.Navigate("alert('"+i.ToString()+"');");
    webBrowser.ExecuteCommand("alert('" + i.ToString() + "');");

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:4)

您可以使用AutoJSContext与geckofx一起运行javascript。

类似的东西:

GeckoWebBrowser browser = ....;

using (AutoJSContext context = new AutoJSContext(browser.JSContext))
{                               
   string result;
   context.EvaluateScript("3 + 2;", out result)
}

See EvaluateScript unittests了解更多信息和示例。

如果您使用的是超级旧版geckofx,则可能需要更高版本 - geckofx

答案 1 :(得分:0)

对于新版本而不是 geckoWebBrowser1.JSContext ,您应该编写 geckoWebBrowser1.Window

我的代码正在运行,并且我在另一则旧帖子here

中给出了示例答复

答案 2 :(得分:0)

在调用文档js函数时,可以使用Navigate方法来避免AccessViolatoinException:

webView.Navigate("javascript:$$external.consoleLog('message text');");