如何使用javascript以编程方式将断行复制到剪贴板?

时间:2017-01-27 14:53:49

标签: javascript asp.net devexpress

使用Javascript和几个devexpress asp.net控件以编程方式复制ASPxMemo(多行文本字段)的内容,并将内容设置为电子邮件的正文。

复制和粘贴大部分都有用,但我注意到,如果在我的ASPxMemo中,我有多行,它会被粘贴到电子邮件正文中作为一行。例如,如果这是在ASPxMemo中:

aaa
bbb
ccc

我希望保留原始格式,但截至目前,电子邮件的正文将被粘贴为:

aaabbbccc

单击ASPxButton时会发生此操作:

<dx:ASPxButton id="btnClipboardCopy" runat="server">
    <Image Url="clipboard.png"></Image>
    <ClientSideEvents Click="function(s, e) { 
            let subject = 'Submission';
            let body = footnote.GetText();
            window.open('mailto:helpdesk@xxx.com?subject=' + subject + '&' + 'body=' + body);
        }"
    />
</dx:ASPxButton>

有什么想法? 感谢

1 个答案:

答案 0 :(得分:1)

可能您的电子邮件撰写窗口在HTML模式下打开,因此您需要使用<br>替换正文中的换行符。在初始化body var后,尝试将以下行添加到JS click处理程序:

body = body.replace(/(?:\r\n|\r|\n)/g, '<br />');

注意,如果这不是开箱即用的工作,您可能需要使用转义<>,因为您实际上正在构建链接。所以,尝试额外的修复:

body = body.replace(/(?:\r\n|\r|\n)/g, '%3Cbr%3E');

HTH