【问题标题】:How to execute javascript with rhino in java?如何在java中用rhino执行javascript?
【发布时间】:2011-08-27 16:48:58
【问题描述】:

在 String 变量中给出网页的 HTML,如何使用 Rhino 在其中执行 JavaScript?

我已经阅读了 Rhinos 主页上的教程,但没有任何运气。

【问题讨论】:

  • Rhino 只是一个 javascript 解释器,它不依赖于 DOM,也不解释 HTML。你确定你不是在寻找 Java 中的 Web 浏览器容器吗?

标签: java javascript html rhino


【解决方案1】:

您可以使用 Java 脚本引擎 JSR-223。

ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine jsEngine = mgr.getEngineByName("JavaScript");
try {
    jsEngine.eval("print('Hello, world!')");
} catch (ScriptException ex) {
      ex.printStackTrace();
}

Java Scripting Programmer's Guide

【讨论】:

    【解决方案2】:

    HtmlUnit 是建立在 Rhino 之上的产品,它允许测试包含客户端 JavaScript 的 Web 应用程序。我自己没有使用过它,但推荐给了一位使用过并且对此非常满意的开发人员。

    很难知道这是否是您想要的,因为您最初的问题并没有说明您首先要执行 JavaScript 的原因。

    【讨论】:

      【解决方案3】:

      你不能以任何直接的方式做到这一点。 Rhino 是一个 JavaScript 解释器,但这确实意味着它可以做网络浏览器所做的事情。

      您的 HTML 源代码中可能包含 <script> 块,并且它可能引用外部脚本。即使你能够从 HTML 中提取脚本源——你必须这样做,因为 Rhino 对 HTML 一无所知——你将面临一个更大的问题:DOM。

      您可能应该使用某种嵌入式(或从属)浏览器解决方案。

      【讨论】:

        【解决方案4】:

        Rhino 只允许您执行独立的 JavaScript。

        如果你想在 HTML 中运行 JavaScript,你需要一个浏览器来提供运行时——你可以使用 WebDriver。

        你想做什么?

        【讨论】:

          猜你喜欢
          • 2010-09-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-03
          • 1970-01-01
          • 2016-01-16
          相关资源
          最近更新 更多