【发布时间】:2013-01-30 05:16:05
【问题描述】:
我有以下 javascript 代码作为字符串
std::string script = " { function execute() { var x=10; return x; } } ";
我想评估这个脚本并返回值,有什么办法吗?
提前致谢。
【问题讨论】:
标签: c++ spidermonkey
我有以下 javascript 代码作为字符串
std::string script = " { function execute() { var x=10; return x; } } ";
我想评估这个脚本并返回值,有什么办法吗?
提前致谢。
【问题讨论】:
标签: c++ spidermonkey
要评估你需要的 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));
【讨论】: