簡體   English   中英

從java方法調用javaScript

[英]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引擎對此一無所知。

請參閱ReferenceError:未定義“警報”

看來“ 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM