繁体   English   中英

Javascript在mailto正文中添加换行符

[英]Javascript adding linebreak in mailto body

我正在使用表单中的值设置电子邮件的正文

  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);” 我得到了名字和姓氏之间的换行符,但是当它打开 Outlook 时,整个 ebody 字符串出现在电子邮件正文中没有换行符。

我也试过 \\n 。 有什么东西可以换行吗?

提前致谢

RFC 2368规定 mailto 正文内容必须是 URL 编码的,对通常在 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);

这不仅可以使您不必识别和查找需要在固定文本中编码的字符的十六进制值,它还可以对firstnamelastname变量中的任何愚蠢的字符进行编码。

您可以仅使用编码%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

我希望 Outlook 尝试将其输出为 html/富文本,因此在这种情况下,您需要类似以下内容(包括 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;

有时,当您使用 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>

暂无
暂无

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

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