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

问题描述 投票:0回答:1

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

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

我想评估这个脚本并返回值,有什么办法可以做到这一点吗?

提前致谢。

c++ spidermonkey
1个回答
3
投票

要评估您需要的 JS 脚本

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

如此处所述:JS_EvaluateScript - SpiderMonkey | MDN

然后如果你想获得返回值你必须调用execute函数:

"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));
© www.soinside.com 2019 - 2024. All rights reserved.