2012-04-18 19 views
12

sto impostando il corpo di una e-mail utilizzando i valori da una formaJavascript aggiunta di interruzione di riga in mailto corpo

firstname = bob 
    lastname = dole 

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

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

Se faccio un "alert (ebody);" Ottengo il linebreak tra il cognome & lastname, tuttavia quando si apre la prospettiva, l'intera stringa ebody appare senza interruzione di riga nel corpo dell'email.

Ho provato anche \ n anche. c'è qualcosa che può dare una pausa ?

Grazie in anticipo

+0

Solo un'idea, avete provato la fuga i backslash come '\\ r \\ n '? – inhan

+1

hai provato a codificare i personaggi? -> '% 0D% 0A' – GNi33

+2

Il testo di tipo MIME è semplice per la tua e-mail? Outlook potrebbe provare a interpretare come testo RTF. – g13n

risposta

32

RFC 2368 afferma che il contenuto del corpo di posta deve essere codificato tramite URL, utilizzando il modulo% -escaped per i caratteri che normalmente verrebbero codificati in un URL. Questi caratteri includono spazi e (come definito esplicitamente nella sezione 5 di 2368) CR e LF.

Si potrebbe fare questo scrivendo

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

ma è più facile e meglio avere JavaScript fare la fuga per voi, in questo modo:

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

Non solo che si evitare di dover identifica e cerca i valori esadecimali dei caratteri che devono essere codificati nel testo fisso, codificherà anche tutti i caratteri sciocchi nelle variabili firstname e lastname.

+0

grazie per la vostra guida funziona bene – srini

1

mi aspetterei prospettive per cercare di uscita questa come HTML/RTF quindi in questo caso si avrebbe bisogno di qualcosa come il seguente (tra cui un tag 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

grazie per la vostra guida funziona bene – srini