我正在尝试在 Java 项目中使用 JavaScript 代码发送电子邮件。数据库连接工作正常,我已经测试过。我收到错误: javax.script.ScriptException: sun.org.mozilla.javascript.internal.EvaluatorException: 第 1 行的形式参数 (#1) 后缺少 )
最佳答案
唯一相关的信息不容易报告:最终执行的 JavaScript 字符串。调试时一定要查看相关数据。检查最终字符串后,您将清楚为什么“修复”是不正确且微不足道的。
提示:它看起来像 function sendMail(userblah, foo@bar.qux) { ..
,这确实是无效 JavaScript。
问题和解决方案应该是不言而喻的 - 在函数声明中使用固定参数(变量名称)并通过invokeFunction调用提供参数(值) .
<小时/>解决方案:
// The following parameter names are JAVASCRIPT variable names.
String script = "function sendMail(username, email, body) { ..";
// And pass correct arguments (values), in order. The variables used
// here are JAVA variables, and align by-position with the JS parameters.
inv.invokeFunction("sendMail", username, email, "EMAIL SENT!!!!");
此外,getElementById
(无效ID)是错误的,body
参数从未使用过,应该使用encodeURIComponent
(而不是逃逸
)。
关于java - 在Java中调用JavaScript函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23023304/