Javascript 如何从静态输入文本创建电子邮件正文?

Javascript 如何从静态输入文本创建电子邮件正文?,javascript,html,Javascript,Html,我想在静态页面上创建一个文本输入表单,并使用mailto选项将其转换为电子邮件正文。例如,以下内容将从文本框中获取输入 <form action="/action_page.php"> First name:<br> <input type="text" name="firstname" value="Mickey"><br> Last name:<br> <input type="text" name="last

我想在静态页面上创建一个文本输入表单,并使用mailto选项将其转换为电子邮件正文。例如,以下内容将从文本框中获取输入

<form action="/action_page.php">
  First name:<br>
  <input type="text" name="firstname" value="Mickey"><br>
  Last name:<br>
  <input type="text" name="lastname" value="Mouse"><br><br>
  <input type="submit" value="Submit">
</form>

我花了些时间为你收集了一些答案。我希望您能花点时间阅读提供的每个链接

首先,您希望获得以下信息:

我曾经为mailto中使用的一些常量设置默认值:

const { 
  recipientName = "ABC", recipientAddress = "abc@123.yes",
  subject = "Some mailz for youz", senderName = "XYZ",
  firstname = "first", lastname = "last"
} = formToJSON(document.querySelectorAll("form input:not([type='submit'])"))
我们还需要一些:

最后,构建我们的:

以下是代码片段,您可以看到所有这些代码一起工作:

const formToJSON=elements=>[].reduce.callelements,data,element=>{ data[element.name]=element.value; 返回数据; }, {}; 常数{ recipientName=ABC,recipientAddress=abc@123.yes, subject=给你的邮件,senderName=XYZ, firstname=first,lastname=last }=formToJSONdocument.querySelectorAllform输入:非[type='submit'] 常量换行符=%0D%0A const mailTo=`mailTo:${recipientAddress}?subject=${subject}&body=Hello ABC,${lineBreak} 我是你父亲。${lineBreak}${lineBreak} 详细信息是:${lineBreak}${lineBreak} 名字:${firstname}${lineBreak} 姓氏:${lastname}${lineBreak}${lineBreak} 谢谢,${lineBreak} ${senderName}` const link=document.createElementa link.textContent=发送一些邮件 link.href=mailTo document.body.appendChildlink 名字: 姓氏:
和你尝试过什么?到目前为止,我只能将占位符值输入到电子邮件中,而不能输入免费文本。而你使用的代码是。。。?
const formToJSON = elements => [].reduce.call(elements, (data, element) => {  
  data[element.name] = element.value;
  return data;
}, {});
const { 
  recipientName = "ABC", recipientAddress = "abc@123.yes",
  subject = "Some mailz for youz", senderName = "XYZ",
  firstname = "first", lastname = "last"
} = formToJSON(document.querySelectorAll("form input:not([type='submit'])"))
const lineBreak = "%0D%0A"
const mailTo = `mailto:${recipientAddress}?subject=${subject}&body=Hello ABC,${lineBreak}
I am your father.${lineBreak}${lineBreak}
The details are:${lineBreak}${lineBreak}
First Name: ${firstname}${lineBreak}
Last Name: ${lastname}${lineBreak}${lineBreak}
Thanks,${lineBreak}
${senderName}`