如何注入javascript函数并稍后使用gecofx调用它

时间:2014-10-21 12:00:38

标签: javascript c# geckofx

我正在使用GeckoFX 29以及xulrunner。

            string text = " function hi(){ return 1;}";
            GeckoElement script = geckoWebBrowser.Document.CreateElement("script");
            script.SetAttribute("type", "text/javascript");
            script.SetAttribute("language", "javascript");
            GeckoTextNode popText = geckoWebBrowser.Document.CreateTextNode(text);
            script.AppendChild(popText);
            geckoWebBrowser.Document.Head.AppendChild(script);

稍后我会调用这个函数。

using (AutoJSContext context = new AutoJSContext(geckoWebBrowser.Window.JSContext))
            {
    context.EvaluateScript(" hi();" , out result);
}

我没有通过函数得到值返回结果是空的评估脚本返回false。

这有什么问题吗? 感谢

1 个答案:

答案 0 :(得分:1)

我怀疑将脚本附加到文档会导致它被解析。

但是执行这样的脚本应该具有添加函数所需的效果:

string text = " function hi(){ return 1;}";
using (AutoJSContext context = new AutoJSContext(geckoWebBrowser.Window.JSContext))
{
    context.EvaluateScript(text, out result);
}

然后你可以像以前一样打电话给你:

using (AutoJSContext context = new AutoJSContext(geckoWebBrowser.Window.JSContext))
{
        context.EvaluateScript(" hi();" , out result);
}