1

在我的 C++ 应用程序中使用嵌入式 SpiderMonkey 我想从 JavaScript 代码中提取所有字符串。JavaScript 代码如下所示:

var foo = "something";  
var space = " ";  
var bar = foo + space + "beautiful";  

C++ 代码如下所示:

char *script = "var foo = \"something\"; var space = \" \"; var bar = foo + space + \"beautiful\";";
ok = JS_EvaluateScript(cx, global, script, strlen(script), filename, lineno, &rval);

所以我的问题是,在 SpiderMonkey 执行 JavaScript 之后,我如何从变量bar中提取字符串(提取的值应该是“漂亮的东西”)并在我的常规 C++ 代码中使用它?我想我必须先评估脚本,然后以某种方式从 JavaScript 变量中提取字符串。我不知道如何使用 SpiderMonkey 提取字符串。

我的第二个问题:
http
: //siliconforks.com/doc/parsing-javascript-with-spidermonkey/ 这个 SpiderMonkey JavaScript 解析器是为 SpiderMonkey 1.6 编写的。最新的 SpiderMonkey 怎么能做到这一点,因为用于解析的 API 发生了变化?

提前谢谢,
Goran

4

2 回答 2

0

由于bar是全局对象的属性,因此在 JS_EvaluateScript() 之后我可以使用 JS_GetProperty() 函数,如下所示

JS_GetProperty(cx, global, "bar", &rval);
JSString *str = JS_ValueToString(cx, rval);
printf("%s\n", JS_EncodeString(cx, str));
于 2011-08-31T16:41:26.347 回答
-1

检查字符串操作函数,如 subString。它可用于解决您的查询。

于 2011-08-31T08:45:51.507 回答