如何在java中使用rhino执行javascript?

时间:2011-08-27 16:48:59

标签: java javascript html rhino

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

我在没有任何运气的情况下阅读了Rhinos主页上的教程。

4 个答案:

答案 0 :(得分:3)

您可以使用Java Scripting Engine 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

答案 1 :(得分:1)

HtmlUnit是基于Rhino构建的产品,允许测试包含客户端JavaScript的Web应用程序。我自己没有使用它,但是向一位开发人员推荐了它,并且非常高兴。

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

答案 2 :(得分:0)

你不能以任何直接的方式做到这一点。 Rhino是一个JavaScript解释器,但肯定意味着它可以做网络浏览器的工作。

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

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

答案 3 :(得分:0)

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

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

你想做什么?