我将以下javascript代码作为字符串
std :: string script =“{function execute(){var x = 10; return x;}}”;
我想评估这个脚本并返回值,有没有办法做到这一点?
提前致谢。
答案 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));