回答:
URLエンコーディングを使用して、改行をとしてエンコードできます%0A
。
mailto:email@address.com?subject=test&body=type%20your%0Amessage%20here
上記は多くの場合に機能するように見えますが、ユーザーolibre は、mailto URIスキームを管理するRFCが(改行)の代わりに(改行+改行)を使用するように指定していると指摘しています。参照:改行表現。%0D%0A
%0A
$0A
は、単純ですescape( "\n" )
encodeURIComponent
を使用してURIコンポーネントをエンコードします。
body
mailto
文字列内で単一のパラメーターを使用する%0D%0A
改行として使用mailto
URIスキームがでで指定されているRFC2368(1998年7月)とRFC6068(2010年10月)。
以下は、この最後のRFCのセクション5の抜粋です。
[...]メッセージ本文の改行はでエンコードする必要があります
"%0D%0A"
。
実装"%0D%0A"
では、本文に末尾がない場合でも、メッセージの本文に最後の改行を追加できます[...]
セクション6の同じRFCの例も参照してください。
<mailto:infobot@example.com?body=send%20current-issue%0D%0Asend%20index>
上記のmailto
本文は以下に対応します:
send current-issue
send index
ボディラインを取得するには、escape()を使用します
body_line = escape("\n");
そう
href = "mailto:me@my.com?body=hello,"+body_line+"I like this.";
encodeURIComponent
むしろ。こちらをご覧ください。
これは私がすることです、追加\n
して使用するだけですencodeURIComponent
例
var emailBody = "1st line.\n 2nd line \n 3rd line";
emailBody = encodeURIComponent(emailBody);
href = "mailto:me@somesite.com?body=" + emailBody;
encodeURIComponentのドキュメントを確認してください
include
使うのencodeURIComponent
?