如何使用spidermonkey执行用户定义的JavaScript代码

时间:2013-01-30 05:16:06

标签: c++ spidermonkey

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

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

我想评估这个脚本并返回值,有没有办法做到这一点?

提前致谢。

1 个答案:

答案 0 :(得分:3)

要评估您需要的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

然后,如果你想得到返回的值,你必须调用exectue函数:

"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));