在String变量中提供网页的HTML,如何使用Rhino在其中执行JavaScript?
我在没有任何运气的情况下阅读了Rhinos主页上的教程。
答案 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();
}
答案 1 :(得分:1)
HtmlUnit是基于Rhino构建的产品,允许测试包含客户端JavaScript的Web应用程序。我自己没有使用它,但是向一位开发人员推荐了它,并且非常高兴。
很难知道这是否是您想要的,因为您的原始问题并没有说明您为什么要首先执行JavaScript。
答案 2 :(得分:0)
你不能以任何直接的方式做到这一点。 Rhino是一个JavaScript解释器,但肯定不意味着它可以做网络浏览器的工作。
您的HTML源代码可能包含<script>
个阻止,并且可能引用外部脚本。即使您能够从HTML中提取脚本源 - 您必须这样做,因为Rhino对HTML一无所知 - 您将面临一个更大的问题:DOM。
您可能应该使用的是某种嵌入式(或从属)浏览器解决方案。
答案 3 :(得分:0)
Rhino只允许您执行独立的JavaScript。
如果要在HTML中运行JavaScript,则需要一个浏览器来提供运行时 - 您可以使用WebDriver。
你想做什么?