2012-04-18 29 views
12

Tôi đang thiết cho cơ thể của một email bằng các giá trị từ một hình thứcJavascript thêm linebreak trong mailto cơ thể

firstname = bob 
    lastname = dole 

    ebody = 'First Name: ' + firstname + '\r\n' + 'Last Name: ' + lastname 

    window.location.href = 'mailto:[email protected]?subject=test 
    email&body=' + ebody; 

Nếu tôi làm một "alert (ebody);" Tôi nhận được dấu ngắt dòng giữa firstname & họ, tuy nhiên khi nó mở ra triển vọng, toàn bộ chuỗi ebody xuất hiện mà không có dấu ngắt dòng trong nội dung email.

Tôi cũng đã thử \ n. có điều gì đó có thể cho là ngắt dòng không?

Cảm ơn trước

+0

Chỉ cần một ý tưởng, bạn đã cố gắng thoát khỏi những dấu xồ nguợc như '\\ r \\ n'? – inhan

+1

bạn đã thử mã hóa các ký tự chưa? -> '% 0D% 0A' – GNi33

+2

Văn bản/đồng bằng loại MIME cho e-mail của bạn? Outlook có thể đang cố gắng diễn giải dưới dạng văn bản đa dạng thức. – g13n

Trả lời

32

RFC 2368 nói rằng nội dung cơ thể mailto phải được mã hóa URL, sử dụng biểu mẫu% hình cho các ký tự thường được mã hóa trong URL. Những ký tự đó bao gồm dấu cách và (được gọi rõ ràng trong phần 5 của 2368) CR và LF.

Bạn có thể làm điều này bằng cách viết

ebody = 'First%20Name:%20' + firstname + '%0D%0A' + 'Last%20Name:%20' + lastname; 

nhưng nó dễ dàng hơn và tốt hơn để có JavaScript làm như thoát cho bạn, như thế này:

ebody = 'First Name: ' + firstname + '\r\n' + 'Last Name: ' + lastname; 
ebody = encodeURIComponent(ebody); 

Không chỉ sẽ giúp bạn tiết kiệm từ việc phải xác định và tra cứu các giá trị hex của các ký tự cần được mã hóa trong văn bản cố định của bạn, nó cũng sẽ mã hóa bất kỳ ký tự ngốc nghếch nào trong các biến số firstnamelastname.

+0

cảm ơn cho hướng dẫn của bạn nó hoạt động tốt – srini

1

Tôi mong chờ viễn cảnh để thử và sản lượng này như html/text giàu như vậy trong trường hợp đó bạn sẽ cần một cái gì đó như sau (bao gồm một thẻ BR urlencoded):

firstname = bob 
    lastname = dole 

    ebody = 'First Name: ' + firstname + '%3C%2Fbr%3E' + 'Last Name: ' + lastname 

    window.location.href = 'mailto:[email protected]?subject=test 
    email&body=' + ebody; 
+0

nhờ hướng dẫn của bạn nó hoạt động tốt – srini

5

Bạn chỉ có thể sử dụng Mã hóa %0D%0A để ngắt dòng.

firstname = 'Aung '; 
lastname = 'Kyaw Zaw'; 

ebody = 'First Name: ' + firstname + '%0D%0A' + 'Last Name: ' + lastname; 

window.location.href = 'mailto:[email protected]?subject=testemail&body=' + ebody; 

http://www.w3schools.com/tags/ref_urlencode.asp

+0

cảm ơn cho hướng dẫn của bạn – srini

Các vấn đề liên quan