[英]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.