需要保留从用户输入的文本区域到电子邮件正文的换行符

Need to preserve line breaks from user-entered textarea to email body

本文关键字:区域 电子邮件 正文 换行符 文本 保留 用户 输入      更新时间:2023-09-26

我有以下Javascript复制用户的文本区输入在这个iPhone应用程序(用HTML/CSS/Javascript为PhoneGap构建),打开电子邮件客户端,并将其粘贴到正文。这个脚本完成了所有这些。不幸的是,文本区域的换行符没有保留下来,这使得阅读体验很糟糕。如何保留文本区的换行符?我在Stackoverflow上阅读了12个标题相似的问题,但没有看到与我相同的案例。

表单代码(使用Jquery):

<div data-role="content"><form name="form2" action="mailto:" type="text/html" onSubmit="send_setupSummaries(form2); return false;">
Javascript:

var setupSummaries = document.getElementById('setupSummaries');
function send_setupSummaries(form2) {
"use strict";
var eml="";
var subj= "?subject=from SC10 Setup App";
var bod = "&body="+form2.setupSummaries.value;
location.href="mailto:"+eml+subj+bod;
}
Textarea:

<li><textarea name="setupSummaries" cols="20" rows="7"></textarea>


这是我到目前为止尝试过的,没有一个有效。注释行是失败的替代方法:

var setupSummaries = document.getElementById('setupSummaries');
var str = document.getElementById('setupSummaries');
//setupSummaries = str.replace(/['r'n]+/g, '<br>');
//setupSummaries = str.replace(/'n/g, '<br>');
//setupSummaries = str.replace('n'r/g, '<br>'); // Mac uses 'r
//setupSummaries = str.replace(/'r/g, '<br>');
//setupSummaries = str.replace(/'r/g, "</p><p>");
var setupSummaries = str.replace(/('r'n|'n|'r)/gm,"</p><p>"); 

您正在将mailto: URI放在一起,因此对消息正文进行URI编码:

var bod = "&body="+encodeURIComponent(form2.setupSummaries.value);

换行符可以是''n'''n'r'字符的形式。您可能希望在这些字符上分割文本并将子字符串封装在<p>标记中,或将''n'替换为'<'br>'标记