我正在使用PyV8从Python执行Javascript程序。我在执行“document.write”时遇到问题,但在此处找到了解决方案(使用模拟文档):Executing Javascript from Python
现在,我正面临另一个问题。我想从python执行一个提示命令javascript。结果的效果应该像一个简单的python raw_input。我举个例子:
var a, b, c, d;
prompt(a);
c = a
prompt(b);
c = c + b
d = a * b
document.write(c)
document.write(d)
使用PyV8,这个脚本的评估应评估第一行,在提示符处停止(a)要求我引入一个(DOS行命令)的值,然后恢复评估直到下一个提示,依此类推。 提前问。
答案 0 :(得分:2)
将Python函数注入JavaScript上下文实际上非常简单 - 您可以通过JSContext.locals
对象将该函数分配给局部变量:
ctx = PyV8.JSContext()
ctx.enter()
ctx.locals.prompt = raw_input
ctx.eval('var a = prompt("js> ");')
突然之间,您可以使用JavaScript中的Python函数,就像在Python中一样。
我通常会链接到文档,但PyV8 documentation似乎无法在任何具有正确MIME类型的地方使用。
答案 1 :(得分:1)
如果PyV8中没有prompt()
函数,那么您可以像the example you cited中添加document
对象一样添加它。