我有一個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做到。