我是javascript和V8的新手。根据Google的Embedder指南,我在context section中看到了一些关于内置实用程序javascript函数的内容。我还在下载的源代码中找到了一些.js文件(例如math.js),所以我尝试编写一个简单的程序来调用这些文件中的函数,但是我失败了。
Persistent<Context> context = Context::New()
创建的上下文是否具有任何内置的js函数?我该如何访问它们?
有没有办法首先将现有的js文件作为库导入(类似于HTML页面中的src =“xxx”type =“text / javascript”),然后运行我自己的执行脚本?
我可以通过app中的嵌入式V8库调用google maps api吗?怎么样?
答案 0 :(得分:1)
3.
Google地图需要一个完整的浏览器DOM(或者至少是我猜的XMLHttpRequest),你不能只使用Javascript库。
答案 1 :(得分:0)
我认为v8免费提供Math。*函数。
你需要自己实现其他一切,比如加载其他javascript文件。 shell.cc具有您可能正在寻找的一些功能。
至于地图API,我相信你需要一个完整的渲染引擎/ javascript引擎组合。你可能最好看看Webkit或者你可以用来嵌入Webkit的东西,我真的不能说。
答案 2 :(得分: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