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

时间:2011-11-14 22:20:31

标签: javascript textarea

我有以下Javascript来复制用户的textarea输入在这个iPhone应用程序(使用HTML / CSS / Javascript for PhoneGap构建),打开电子邮件客户端,并将其粘贴到正文中。这个脚本完成了所有这些。不幸的是,textarea的换行没有保留,这使得它成为一种可怕的阅读体验。如何保留textarea的换行符?我在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>"); 

2 个答案:

答案 0 :(得分:4)

您正在整理mailto: URI,因此对邮件正文进行URI编码:

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

答案 1 :(得分:0)

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