使用mailto时保留textarea中的换行符

时间:2019-01-07 09:15:01

标签: javascript html line-breaks mailto

我有一个文本区域,用户可以在其中插入一些文本,然后在单击“发送”按钮后,应在默认的电子邮件窗口中复制文本(如输入的一样)(我已经尝试过使用Outlook)。 现在,如果我要输入:

abcd

def

我将得到输出:

abcd</br></br>def 

这是html文件:

<div class="form-group">
    <label for="message" class="sr-only">Message</label>
    <textarea name="message" id="message" class="form-control" cols="30" rows="7" placeholder="Message" minlength="5" data-validation-minlength-message="Min 5 characters" maxlength="999" required></textarea>
</div>
<div class="form-group">
    <input type="submit" value="Send Message" onclick="javascript: sendemail();" class="btn btn-primary" id="abcd">
</div>

这是.js文件:

function sendemail() {

var name = document.getElementById('name').value;
var email = document.getElementById('email').value;
var message2 = document.getElementById('message').value;

var myLineBreak = message2.replace(/\r\n|\r|\n/g, "</br>");

var pattern = /[a-zA-Z0-9!#$%&amp;'*+\/=?^_`{|}~.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*/;

if (name.length == 0) 
    alert("Please complete the Name field!");
else
    if (pattern.test(String(email).toLowerCase()) == 0)
        alert("Please enter a valid email address!");
    else
        if (message2.length < 5)
            alert("Message too short!");
        else {
            document.getElementById("form1").action = "mailto:JustinF@somesite.com&body=" + myLineBreak;
            document.getElementById("form1").submit();
        }
}

我也尝试将其添加到style.css:

#abcd {
    white-space: pre-wrap;
}

但没有运气...(“ abcd”是“发送”按钮的ID)

1 个答案:

答案 0 :(得分:0)

我设法弄清楚了。 我替换了

HKEY_CLASSES_ROOT\.asm\OpenWithProgIds

使用

var myLineBreak = message2.replace(/\r\n|\r|\n/g, "</br>");

现在它可以正常工作了。