【发布时间】:2010-11-06 13:14:03
【问题描述】:
感谢python-spidermonkey,在 Python 中使用 JavaScript 代码真的很容易。
但是,除了使用 Python 从文件中读取 JS 代码并将字符串传递给 Spidermonkey 之外,有没有办法从 Spidermonkey 中读取文件(或将文件路径作为参数传递,就像在 Rhino 中一样)?
【问题讨论】:
标签: javascript python spidermonkey
感谢python-spidermonkey,在 Python 中使用 JavaScript 代码真的很容易。
但是,除了使用 Python 从文件中读取 JS 代码并将字符串传递给 Spidermonkey 之外,有没有办法从 Spidermonkey 中读取文件(或将文件路径作为参数传递,就像在 Rhino 中一样)?
【问题讨论】:
标签: javascript python spidermonkey
SpiderMonkey 作为一个库,通过使用非 NULL filename 参数调用 JS_EvaluateScript 来实现这一点。
但是,python-spidermonkey 的 interfacing code 仅在 eval_script 方法内调用 JS_EvaluateScript,该方法作为编码仅以字符串形式提供源。
您应该向 python-spidermonkey 开发人员解决您的问题,或者 - 如果可能,最好提供一个补丁程序,例如 eval_file_script 方法:)
【讨论】:
原来你可以绑定一个 Python 函数并在 Spidermonkey 中使用它: http://davisp.lighthouseapp.com/projects/26898/tickets/23-support-for-file-io-js_evaluatescript
import spidermonkey
def loadfile(fname):
return open(fname).read()
rt = spidermonkey.Runtime()
cx = rt.new_context()
cx.add_global("loadfile", loadfile)
ret = cx.execute('var contents = loadfile("foo.js"); eval(contents);')
【讨论】: