我有一个javascript函数(非常大的!),我需要它在Java(Groovy)类中的功能。这是一个简单的日历转换器。我可以在groovy中重写它,但只是想知道是否可以从java(groovy)方法调用javascript函数?我想像selenium和Canoo这样的功能测试库应该有这样的东西,对吗? PS:我不想唤醒现实世界的浏览器以使用它的JS运行时环境。
谢谢,
答案 0 :(得分:8)
如其他答案中所述,可以使用Scripting API作为{6}}包提供的一部分提供的javax.script
。
以下是一个Groovy示例,它执行一些Javascript:
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相关的功能)将不可用。
答案 1 :(得分:0)
您可以使用Rhino,这是Java中JavaScript语言的一种实现。以下是calling JavaScript function from java的示例,但您也可以从groovy中执行此操作。