【问题标题】:How to execute user defined javascript code using spidermonkey如何使用spidermonkey执行用户定义的javascript代码
【发布时间】:2013-01-30 05:16:05
【问题描述】:

我有以下 javascript 代码作为字符串

std::string script = " { function execute() { var x=10; return x; } } ";

我想评估这个脚本并返回值,有什么办法吗?

提前致谢。

【问题讨论】:

    标签: c++ spidermonkey


    【解决方案1】:

    要评估你需要的 JS 脚本

    JSBool JS_EvaluateScript(JSContext *cx, JSObject *obj, const char *src, uintN length, const char *filename, uintN lineno, jsval *rval);
    

    如此处所述:https://developer.mozilla.org/en-US/docs/SpiderMonkey/JSAPI_Reference/JS_EvaluateScript

    那么如果你想得到返回值你必须调用执行函数:

    "function execute(){ var x = 10; return x;} execute();"
    

    然后评估脚本必须是 const char* 类型而不是 std::string

    评估脚本后,您可以使用 rval 获取返回值

    if(JSVAL_IS_INT(rval))
      printf("The returned value is : %d\n", JSVAL_TO_INT(rval));
    

    【讨论】:

      猜你喜欢
      • 2019-11-07
      • 2022-06-15
      • 1970-01-01
      • 2013-10-21
      • 1970-01-01
      • 1970-01-01
      • 2019-04-07
      • 2011-06-18
      • 1970-01-01
      相关资源
      最近更新 更多