我在评估一个依赖于prototype.js的script.js文件时遇到了问题。当我试图通过java中的rhino脚本引擎评估script.js文件时,我得到了类似“TypeError:$ H不是函数,它是java.lang.String。”的脚本异常。如何评估文件以及如何包含prototype.js和定义原型对象?
答案 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也能工作,我也不会感到惊讶。