html \n已从我的电子邮件正文中删除

uemypmqf  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(160)

我使用JavaScript来制定mailto: URI,但是由于某种原因,\n字符不起作用。
我的字符串是这样构造的:
var emailBody = "This is the first line!\n" + "This is the next line.\n" + "And so on and so forth.\n";
然后我创建一个URL,如下所示:

var mailToLink = 'mailto:' + emailTo
               + '?subject=' + emailSubject
               + '&body=' + emailBody;

并指示浏览器导航到该URI:

var win = window.open(mailToLink, 'emailWindow');

我的电子邮件客户端打开时,窗口中显示了草稿邮件,但所有的“行”都是连续显示的。我看不到换行符,除了那些由于电子邮件客户端的自然换行而呈现的换行符。
我怎样才能生成这封电子邮件与换行符原封不动?

6rvt4ljy

6rvt4ljy1#

我创建一个变量:电子邮件链接= '电子邮件收件人:' +电子邮件收件人+?主题=' +电子邮件主题+ '&正文=' +电子邮件正文;
URL中不能有文本换行符。
应该使用URLSearchParams生成查询字符串,而不是将字符串混合在一起,这样可以处理任何需要进行的转义。

const emailTo = "example@example.com";
const emailSubject = "Visit a café";
const emailBody = `This is a body which includes
a new line!`;

const url = new URL(`mailto:${emailTo}`);
url.searchParams.set('subject', emailSubject);
url.searchParams.set('body', emailBody);

var mailToLink = url.toString();
console.log(mailToLink);

2015年答案:
在将每个值添加到URL字符串时,应通过the encodeURIComponent() function传递每个值(这将处理所有具有特殊含义的字符,包括新行、+%等)。

相关问题