我有一个JavaScript函数(非常大的!),我需要它在Java(Groovy)类中的功能。这是一个简单的日历转换器。我可以在groovy中重写它,但只是想知道是否可以从java(groovy)方法调用javascript函数?我猜想像硒和Canoo这样的功能测试库应该有这样的东西,我说得对吗? PS:我不想唤醒真实世界的浏览器以使用它的JS运行环境。从Java(Groovy)类调用JavaScript函数
感谢,
我有一个JavaScript函数(非常大的!),我需要它在Java(Groovy)类中的功能。这是一个简单的日历转换器。我可以在groovy中重写它,但只是想知道是否可以从java(groovy)方法调用javascript函数?我猜想像硒和Canoo这样的功能测试库应该有这样的东西,我说得对吗? PS:我不想唤醒真实世界的浏览器以使用它的JS运行环境。从Java(Groovy)类调用JavaScript函数
感谢,
如在其他的答案提到的,可以使用作为javax.script
包的一部分提供的Scripting API,购自爪哇6.
以下是执行Java脚本的一点点一个Groovy例如:
import javax.script.*
manager = new ScriptEngineManager()
engine = manager.getEngineByName("JavaScript")
javascriptString = """
obj = {"value" : 42}
print(obj["value"])
"""
engine.eval(javascriptString) // prints 42
当使用Scripting API时,没有必要调用浏览器来执行Javascript,但应该记住浏览器特有的功能(可能与DOM相关的功能)将不可用。
您可以使用Rhino,在Java JavaScript语言的实现。这里是calling JavaScript function from java的例子,但你也可以从groovy做到。