感谢python-spidermonkey
,使用Python中的JavaScript代码非常简单。
但是,不是使用Python从文件中读取JS代码并将字符串传递给Spidermonkey,是否有办法从Spidermonkey中读取文件(或将文件路径作为参数传递,如在Rhino中)?
答案 0 :(得分:2)
作为库的SpiderMonkey允许通过使用非NULL filename
参数调用JS_EvaluateScript
。
但是,python-spidermonkey
JS_EvaluateScript
仅在eval_script
方法内调用eval_file_script
,而编码仅以字符串形式提供来源。
你应该向python-spidermonkey开发者解决你的问题,或者如果可能的话,你应该更好地解决你的问题! - 为{{1}}方法提供补丁:)
答案 1 :(得分:2)
原来你可以绑定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);')