简体   繁体   English

从Java(Groovy)类调用javascript函数

[英]Call javascript function from Java (Groovy) class

I have a javascript function (very big one!) that I need its functionality in a Java (Groovy) class. 我有一个javascript函数(非常大的!),我需要它在Java(Groovy)类中的功能。 It is a simple calendar converter. 这是一个简单的日历转换器。 I can rewrite it in groovy but just want to know if it is possible to call javascript function from a java (groovy) method? 我可以在groovy中重写它,但只是想知道是否可以从java(groovy)方法调用javascript函数? I guess functional testing libraries like selenium and Canoo should have something like this, am I right? 我想像selenium和Canoo这样的功能测试库应该有这样的东西,对吗? PS: I don't want to wake up a real-world browser in order to use its JS runtime env. PS:我不想唤醒现实世界的浏览器以使用它的JS运行时环境。

Thanks, 谢谢,

As mentioned in the other answers, it is possible to use the Scripting API provided as part of the javax.script package, available from Java 6. 如其他答案中所述,可以使用作为javax.script包的一部分提供的Scripting API ,可从Java 6获得。

The following is a Groovy example which executes a little bit of Javascript: 以下是一个Groovy示例,它执行一些Javascript:

import javax.script.*

manager = new ScriptEngineManager()
engine = manager.getEngineByName("JavaScript")

javascriptString = """
obj = {"value" : 42}
print(obj["value"])
"""

engine.eval(javascriptString)  // prints 42

It is not necessary to call a browser to execute Javascript when using the Scripting API, but one should keep in mind that browser-specific features (probably the DOM-related functionalities) will not be available. 在使用Scripting API时,没有必要调用浏览器来执行Javascript,但是应该记住,浏览器特定的功能(可能与DOM相关的功能)将不可用。

You can use Rhino , an implementation of JavaScript language in Java. 您可以使用Rhino ,Java中的JavaScript语言实现。 Here is example of calling JavaScript function from java , but you can do it from groovy also. 这是从java调用JavaScript函数的示例,但您也可以从groovy中执行此操作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM