2010-04-24 17 views
8

Mam funkcję javascript (bardzo duża!), Że potrzebuję jej funkcjonalność w klasie Java (Groovy). Jest to prosty konwerter kalendarza. Mogę przepisać to w groovy, ale po prostu chcesz wiedzieć, czy można wywołać funkcję javascript z metody java (groovy)? Wydaje mi się, że biblioteki testów funkcjonalnych, takie jak selen i Canoo, powinny mieć coś takiego, czy mam rację? PS: Nie chcę budzić przeglądarki działającej w świecie rzeczywistym, aby korzystać z jej środowiska wykonawczego JS.Wywołanie funkcji javascript z Java (Groovy) klasa

Dzięki,

Odpowiedz

8

Jak wspomniano w innych odpowiedzi, możliwe jest korzystanie z Scripting API dostarczone jako część pakietu javax.script, dostępne z Java 6.

Poniżej znajduje się przykład, który wykonuje Groovy trochę javascript:

import javax.script.* 

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

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

engine.eval(javascriptString) // prints 42 

Nie trzeba wywoływać przeglądarki, aby wykonać skrypt JavaScript podczas korzystania z interfejsu API skryptowania, ale należy pamiętać, że funkcje specyficzne dla przeglądarki (prawdopodobnie funkcje związane z DOM) nie będą dostępne.

Powiązane problemy