从java方法调用javaScript
我想从Java执行JavaScript函数。我使用了下面的代码从java方法调用javaScript,javascript,java,Javascript,Java,我想从Java执行JavaScript函数。我使用了下面的代码 ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("JavaScript"); 但是这会引发alert()方法的异常 engine.eval("alert('HI');"); 您不能以任何方式从java调用javascript。javascript是客户端语言,在浏
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
但是这会引发alert()
方法的异常
engine.eval("alert('HI');");
您不能以任何方式从java调用javascript。javascript是客户端语言,在浏览器上执行,而java则在服务器上执行 更新:- 谢谢各位,我在这里学到了一些新东西 当我在op中执行代码时,我得到下面的错误
Error executing script: ReferenceError: "alert" is not defined in <eval> at line number 1
执行脚本时出错:ReferenceError:“警报”未在第1行中定义
原因是alert不是JavaScript的一部分,它是web浏览器提供的窗口对象的一部分。所以,Nashhorn JavaScript引擎不知道它
请参见So。我很确定你的代码是错误的
engine.eval("alert(HI);");
试试看
除非您声明了一个变量HI。您这样做是错误的,您不能从java代码中调用JavaScript函数,因为一个在客户端执行,另一个在服务器端执行……即使您使用某些API实现了这一点,这也是错误的代码架构。似乎是“alert()”是web浏览器提供的窗口对象的一部分 我修改了java代码:
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
engine.eval("print('HI');");
这很有用:
有关javscript窗口对象的信息:可以通过脚本API,哪个OP在使用:借助脚本api,我们可以调用基本javascript,但我们不能使用任何预定义的方法,它会引发异常,因此,如果您知道任何其他解决方案,请提供用户3707125您需要转义Hican周围的引号,请提供链接,在那里我可以看到一些在javaTry中使用js的示例/教程
eval(“警报(\'HI\”)代码>我的意思是,它与使用.Net调用powershell函数没有什么不同。或者Sql语句……服务器端脚本是一种优雅的东西,甚至可以是复杂的体系结构
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
engine.eval("print('HI');");