Имам следния javascript код като низ
std::string скрипт = " {функция изпълни() { var x=10; return x; } } ";
Искам да оценя този скрипт и да върна стойността, има ли някакъв начин да направя това?
Благодаря предварително.
Имам следния javascript код като низ
std::string скрипт = " {функция изпълни() { var x=10; return x; } } ";
Искам да оценя този скрипт и да върна стойността, има ли някакъв начин да направя това?
Благодаря предварително.
За да оцените 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));