我写了一个带有文本字段的html页,可以在其中输入文本,单击按钮,应将包含输入文本的电子邮件发送到预定的电子邮件地址。
页面在Firefox和Chrome中按预期显示,但是单击该按钮时,没有任何反应。
function sendEmail(adress) {
Email.send("Sender@email.com", "Receiver@email.com", "subject", adress, "smtp.email.com", "Sender@email.com", "pAssWoRd", function done(message) {
alert("Email sent successfully")
});
}
<!DOCTYPE html>
<html>
<body>
<script src="smtp.js"></script>
<form action="/action_page.php">
<p>TEXT</p>
<p>TEXT</p>
<p>TEXT</p>
Enter text here: <input type="text" name="fname"><br>
<input type=button onClick="sendEmail(fname.value);" value='send'>
</form>
</body>
</html>
该按钮应该发送电子邮件并显示“电子邮件发送成功”警报消息。您能帮我调试此代码吗?
答案 0 :(得分:1)
尝试将警报或日志记录到控制台内部功能中。我可以毫无问题地调用sendEmail函数。您的代码唯一的问题是额外的脚本标签</script>
代码:
function sendEmail(adress) {
alert("Inside sendEmail function");
Email.send("Sender@email.com", "Receiver@email.com", "subject", adress, "smtp.email.com", "Sender@email.com", "pAssWoRd", function done(message) {
alert("Email sent successfully")
});
}
<!DOCTYPE html>
<html>
<body>
<script src="smtp.js"></script>
<form action="/action_page.php">
<p>TEXT</p>
<p>TEXT</p>
<p>TEXT</p>
Enter text here: <input type="text" name="fname"><br>
<input type=button onClick="sendEmail(fname.value);" value='send'>
</form>
</body>
</html>
答案 1 :(得分:1)
没有smtp.js
这样的依赖项,我们无法真正调试它,但是我可以教你如何钓鱼,我的意思是调试JavaScript。
知道如何在JS中正确调试可以使您的生活更加轻松。
如果下面的技巧对您来说太难了,那么您可以随时使用good'ol console.log
来查看代码的运行方式;使用较少的上下文和选项,速度会慢得多。就像其他人所说的那样,您可以使用经典的alert
来查看代码是否到达了您期望的位置。如果您不断刷新并尝试进一步调试,那么单击警报就变得很痛苦。
注意:您可能还试图使用节点/服务器端代码发送电子邮件。如果是这种情况,那么它将无法在客户端运行。似乎您正在尝试使用一个库,该库应该允许您在客户端使用它。
警告:将电子邮件服务器密码传递给客户端很危险,因为现在他们已经有了您的凭据。此代码应在服务器端发生。客户端可以在服务器上命中一个端点,然后该端点将启动代码以从服务器发送电子邮件。
debugger;
放在您希望代码中断的位置。
Email.send
上方扔一个。debugger;
语句时,代码应暂停。
debugger
语句中。现在,您将可以访问当前的调用堆栈,作用域/变量以及其他有用的调试工具。
step
。step over next function call
。step into next function call
。step out of current function
。当您进入不知道发生了什么并且根本不关心它的第三方图书馆时,这很有用。Sources
标签中的源代码,然后选择Blackbox script
。js
文件中。source map
,它将缩小的代码映射回原始代码。 Chrome会向您显示原始代码,并让您在其中设置断点,而不是尝试使用缩小版本。仍然有一些代码部分无法100%转换,因此您可能无法始终打破期望的位置。
答案 2 :(得分:-1)
第一件事。 1.您还有一个额外的结束脚本标签 2.让您的输入类型提交 3.您的表单操作可能应该是action =“ mailto:emailfrom ... method =” post“>