如何通过Java中的rhino脚本引擎评估原型js文件

时间:2009-08-10 06:41:01

标签: java javascript

我在评估一个依赖于prototype.js的script.js文件时遇到了问题。当我试图通过java中的rhino脚本引擎评估script.js文件时,我得到了类似“TypeError:$ H不是函数,它是java.lang.String。”的脚本异常。如何评估文件以及如何包含prototype.js和定义原型对象?

3 个答案:

答案 0 :(得分:2)

您无法仅使用Rhino评估prototype.js。 prototype.js有很多对HTML DOM的引用,而这些引用并没有在Rhino / Java中实现。 例如(来自prototype.js): document.createTextNode( '') 文档全局对象未在Rhino上下文中定义,并且createTextNode也未定义。

解决方案是从您的prototype.js副本中删除所有引用文档,窗口或导航器对象的对象/函数。 (假设您的js文件不使用它们)

答案 1 :(得分:0)

您是否按正确的顺序对它们进行了评估?他们需要从下往上进行评估

答案 2 :(得分:0)

查看env-js,这是Rhino的模拟浏览器环境。它基于some work by John Resig来让JQuery在Rhino中运行。如果Prototype也能工作,我也不会感到惊讶。