в ссылках mailto в iPhone добавляются знаки плюс вместо пробелов - PullRequest
4 голосов
/ 02 марта 2012

У меня есть веб-приложение, которое я сейчас создаю, для которого нужно использовать ссылку mailto: для части «расскажи другу». Тело сообщения было слишком длинным для URL, поэтому оно было в скрытой форме и отправляю форму через jQuery.

Все работает блестяще, за исключением того, что он добавляет знаки +, где пробелы должны идти. Я пробовал убегать, заменяя «+» пробелами, но как только он переходит к «mailto_form.submit ();», знаки + добавляются к теме и телу.

Заранее спасибо за любые предложения!

<form id="mailto_form" action="mailto:" style="visibility:hidden;position:absolute;height:1px;width:1px;" method="get">
    <input type="hidden" name="Subject" value="{$tellafriend_subject|replace:'"':'&quot;'}">
    <input type="hidden" name="Body" value="{$tellafriend_body|replace:'"':'&quot;'}">
    <input type="submit">
</form>

$(".email_link").click(function(e) {
    var mailto_form = $("#mailto_form");

    var val = $("input[name=Subject]", mailto_form).val();
    val = val.replace("[[[NAME]]]", firstname);
    $("input[name=Subject]", mailto_form).val(val);

    var val = $("input[name=Body]", mailto_form).val();
    val = val.replace("[[[NAME]]]", firstname + " " + lastname);
    $("input[name=Body]", mailto_form).val(val);

    mailto_form.submit();

    e.preventDefault();
});

1 Ответ

2 голосов
/ 06 февраля 2014

Использование %20

Кажется, проблема почтового клиента iOS. Вместо + вы можете URL-кодировать пробел как %20. Я только что столкнулся с проблемой, и% 20 - мое решение.

...