Javascript在mailto正文中添加换行符

时间:2012-04-18 23:53:25

标签: javascript html

我正在使用表单

中的值设置电子邮件正文
  firstname = bob
  lastname = dole

   ebody = 'First Name: ' + firstname + '\r\n' + 'Last Name: ' + lastname

  window.location.href = 'mailto:myemail@mycompany.com?subject=test
  email&body=' + ebody;

如果我做“警告(ebody);”我得到了名字和名字之间的换行符 lastname,但是当它打开outlook时,整个ebody字符串 在电子邮件正文中没有换行符。

我也试过了。有什么东西可以成为一条线 打破?

提前致谢

4 个答案:

答案 0 :(得分:41)

RFC 2368表示mailto正文内容必须是URL编码的,使用%-escaped表单来表示通常在URL中编码的字符。这些字符包括空格和(如2368第5节中明确指出的)CR和LF。

您可以通过编写

来完成此操作
ebody = 'First%20Name:%20' + firstname + '%0D%0A' + 'Last%20Name:%20' + lastname;

但是让JavaScript为你做逃避会更容易也更好,就像这样:

ebody = 'First Name: ' + firstname + '\r\n' + 'Last Name: ' + lastname;
ebody = encodeURIComponent(ebody);

这不仅可以帮助您识别和查找需要在固定文本中编码的字符的十六进制值,还可以对firstname和{{1}中的任何傻瓜字符进行编码变量。

答案 1 :(得分:7)

您可以使用编码%0D%0A进行换行。

firstname = 'Aung ';
lastname = 'Kyaw Zaw';

ebody = 'First Name: ' + firstname + '%0D%0A' + 'Last Name: ' + lastname;

window.location.href = 'mailto:myemail@mycompany.com?subject=testemail&body=' + ebody;

http://www.w3schools.com/tags/ref_urlencode.asp

答案 2 :(得分:2)

我希望outlook尝试将其输出为html / rich text,因此在这种情况下你需要类似下面的内容(包括urlencoded br标签):

 firstname = bob
  lastname = dole

   ebody = 'First Name: ' + firstname + '%3C%2Fbr%3E' + 'Last Name: ' + lastname

  window.location.href = 'mailto:myemail@mycompany.com?subject=test
  email&body=' + ebody;

答案 3 :(得分:0)

有时,当您使用 HTML/JavaScript 从 SharePoint 内容编辑器 Web 部件打开 Outlook 时。那么您还需要考虑以下选项。

使用代码-

<块引用>

%0D%0A%0D%0A

换行。

<a href="mailto:jegan.baskaran@domain.de?subject=Hello%20there%20Mr%20Jegan&amp;body=Hello%20Jegan,%0D%0A%0DHowr%20are%20you%20boss.">E-Mail to Jegan</a>