繁体   English   中英

用Java调用JavaScript函数

[英]Calling JavaScript function in Java

我正在尝试在Java项目中使用javascript代码发送电子邮件。 数据库连接工作正常,我已经对其进行了测试。 我在第1行的形式参数(#1)之后收到错误: javax.script.ScriptException:sun.org.mozilla.javascript.internal.EvaluatorException:missing)

唯一相关的信息不容易报告:执行的最终 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 (而不是escape )。

不知道这是不是错字:

    result = request.executeQuery("SELECT user.login, user.email "
                    + "FROM user " + );

您似乎错过了声明的结尾。

嗯,您的函数定义:

function sendMail("username","email") {...}

在我看来,JavaScript不是有效的JavaScript,除此之外,您永远不会调用该函数。

伪代码,怎么做:

function sendMail(username, email) {
    var link = "jadajada" + email; // .... etc
}
sendMail("+username+","+email+");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM