Search code examples
javascriptmailtoline-breaks

Line break in the mailto onclick


The code below works great except the email has all the text on one line like this: Height: 60 | Diagonal: 123 | Width: 107 | Total SF: 13.92 | Cost Per SF: 450 | Total Cost: $6,264.00

I would like to break after each so it looks like this:

Height: 60
Diagonal: 123
Width: 107
Total SF: 13.92
Cost Per SF: 450
Total Cost: $6,264.00

I tried \n \r \n\r etc but none of them work. Any ideas?

<a class="emailText" href="mailto:?subject=Screen Dimensions" onclick="this.href='mailto:?subject=Screen Dimensions&body='+'Height: '+document.forms.myform.high.value+' | '+'Diagonal: '+document.forms.myform.diagonal.value+' | '+'Width: '+document.forms.myform.wide.value+' | '+'Total SF: '+document.forms.myform.sf.value+' | '+'Cost Per SF: '+document.forms.myform.csf.value+' | '+'Total Cost: '+document.forms.myform.tc.value">Email</a>

Solution

  • You need to use the ASCII values for line feed/carriage return:

    %0A = \n
    
    %0D = \r
    
    %0D%0A = \r\n
    

    Works like a charm.

    <a href="mailto:person@somedomain.com?subject=My subject&body=Hello %0D%0A World">Link</a> 
    

    (Spaces added around %0D%0A for clarity. In reality, this could add unwanted white space.)