[英]calling javaScript from java method
我想從Java執行JavaScript函數。 我使用了以下代碼
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
但這會引發alert()
方法的異常?
engine.eval("alert('HI');");
所以。 我很確定您的代碼不正確。
engine.eval("alert(HI);");
嘗試。
engine.eval("alert('Hi');");
除非您聲明了變量HI。
您不能以任何方式從Java調用javascript。 javascript是客戶端語言,在瀏覽器上執行,而在服務器上執行java
更新:-謝謝大家,我在這里學到了一些新東西。
當我在op中執行代碼時,出現以下錯誤
Error executing script: ReferenceError: "alert" is not defined in <eval> at line number 1
原因是警報不是JavaScript的一部分,而是Web瀏覽器提供的window對象的一部分。因此,Nashhorn javascript引擎對此一無所知。
看來“ alert()”是網絡瀏覽器提供的窗口對象的一部分。 它在這里不存在
我已經修改了Java代碼:
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
engine.eval("print('HI');");
這很有用: Java腳本程序員指南
有關javscript窗口對象的信息: Window對象
您做錯了方法,您無法從Java代碼調用JavaScript函數,因為一個在客戶端執行,而另一個在服務器端執行...即使您使用某種API來實現,這也是錯誤的代碼結構方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.