Escape & для отображения в почтовом клиенте (mailto link) - PullRequest
7 голосов
/ 01 июля 2011

У меня есть функция JavaScript, например, так:

var strBody = encodeURI(window.location.href);
var strSubject = encodeURI(document.title);
var mailto_link = "mailto:?subject=" + encodeURI(strSubject) + "&body=" + strBody;

Этот код выполняется для события onclick гиперссылки и открывает почтовый клиент (mailto: //). Тем не менее, заголовок страницы имеет несколько символов &, но заголовок выбирается только до первого символа &. URL всегда берется.

Какой правильный JavasSript используется для выхода из & и отображения его в строке темы почтового клиента?

Ответы [ 2 ]

13 голосов
/ 01 июля 2011
var encoded_body = encodeURIComponent(window.location.href);
var encoded_subject = encodeURIComponent(document.title);
var mailto_link = "mailto:?subject=" + encoded_subject + "&body=" + encoded_body;

должен это сделать (encodeURIComponent вместо encodeURI).

В исходном коде вы также неправильно дважды кодировали субъект (один раз в строке 2,и затем снова в строке 3).

Я позволил себе переименовать ваши переменные, чтобы прояснить, что они содержат закодированные subject и body , в отличие отОригинальный текст.

2 голосов
/ 01 июля 2011

Вы хотите encodeURIComponent не кодироватьURI.

...