【问题标题】:How to evalute prototype js files through rhino script engine in Java如何在 Java 中通过 rhino 脚本引擎评估原型 js 文件
【发布时间】:2009-08-10 06:41:00
【问题描述】:

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

【问题讨论】:

    标签: java javascript


    【解决方案1】:

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

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

    【讨论】:

    • 您也可以为文档、窗口、导航器等声明一些虚拟对象。这样您就不必更改prototype.js。
    【解决方案2】:

    您是否以正确的顺序评估它们?他们需要自下而上进行评估

    【讨论】:

      【解决方案3】:

      看看env-js,它是一个用于Rhino 的模拟浏览器环境。它基于some work by John Resig 让JQuery 在Rhino 中工作。如果 Prototype 也能​​正常工作,我不会感到惊讶。

      【讨论】:

        猜你喜欢
        • 2012-07-16
        • 1970-01-01
        • 2014-11-27
        • 1970-01-01
        • 2011-02-09
        • 2017-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多