3

我是 javascript 和 V8 的新手。根据 Google's Embedder's Guide,我在上下文部分看到了一些关于内置实用程序 javascript 函数的内容。而且我还在下载的源代码中找到了一些.js文件(例如math.js),所以我尝试编写一个简单的程序来调用这些文件中的函数,但我失败了。

  1. 创建的上下文是否Persistent<Context> context = Context::New()有任何内置的 js 函数?我怎样才能访问它们?

  2. 有没有办法首先将现有的 js 文件作为库导入(类似于 HTML 页面中的 src="xxx" type="text/javascript" )然后运行我自己的执行脚本?

  3. 我可以通过应用程序中的嵌入式 V8 库调用谷歌地图 api 吗?如何?

4

3 回答 3

1

3.谷歌地图需要一个完整的浏览器 DOM(或者至少我猜是 XMLHttpRequest),你不能只从一个 Javascript 库中使用它。

于 2010-03-12T22:54:40.237 回答
0

例如,您可以使用 --allow_natives_syntax 或 --expose_natives_as 选项。
以下是在 src/math.js 中随机选取的 MathLog 示例:

首先编译一个shell

$ scons d8 -j8

然后使用--expose_natives_as:

$ ./d8 --expose_natives_as nat
V8 version 3.12.7 (candidate) [console: dumb]
d8> nat.MathLog(100)
4.605170185988092

或使用带有 '%' 前缀的 --allow_natives_syntax:

$ ./d8 --allow_natives_syntax
V8 version 3.12.7 (candidate) [console: dumb]
d8> %MathLog(100)
4.605170185988092
于 2012-07-04T15:21:52.650 回答
0

我认为 v8 为您免费提供了 Math.* 函数。

不过,您需要自己实现其他所有内容,例如加载其他 javascript 文件。shell.cc有一些您可能正在寻找的功能。

至于地图 API,我相信您需要一个完整的渲染引擎/javascript 引擎组合。你最好看看Webkit或者你可以用来嵌入 Webkit 的东西来做你想做的事情,我真的不能说。

于 2011-01-23T07:13:30.210 回答