IE9 и ограничения mailto символов - PullRequest
1 голос
/ 08 декабря 2011

Я пытаюсь отправить предварительно заполненное электронное письмо, используя mailto и href, однако вскоре обнаружил, что в IE9 есть проблема с распознаванием hrefs длиннее 509 символов (дать или взять). По сути, нажатие на ссылку приводит к появлению пустой страницы. Я искал ответ и наткнулся на это решение javascript, однако оно все еще не работает.

Вот тег привязки:

<a href="javascript:doMailto()">Sign up</a>

А вот и скрипт:

var sMailto = "mailto:blah@email.com?body=Dear eyecare professional,%0A%0aTo help us schedule your upcoming webinar, please fill out and return the following information:%0A%0A•  Name:%0A%0A•  Preferred date of webinar* (any Wednesday at 6 pm EST):%0A%0A•  City/State (Optional):%0A%0A•  Comments/Questions/Feedback:%0A%0AUpon receipt, we will send you a link to an upcoming GoTo Meeting webinar on Macula Risk implementation in your clinic. These webinars are regularly held on Wednesdays at 6 pm EST.%0A%0A* If you would like to request training on any other date or time - please note this in the Comments section and we will do our best to accommodate your request.%0A%0AKind Regards,%0A%0AGerry Bruckheimer";

   function doMailto() {
      document.location.href= sMailto;
   }

Странная вещь в том, что это работает в любом другом браузере, кроме глупого IE 9.

ОБНОВЛЕНИЕ: Если у вас возникла проблема, аналогичная моей, попробуйте использовать window.open (url). Я понимаю, что это не идеальное решение, но оно работает.

1 Ответ

1 голос
/ 08 декабря 2011

Ограничение URL для IE9 на самом деле довольно высокое и составляет между 5120 и 5150 при переходе по ссылке. К сожалению, взлом Javascript здесь не поможет - ограничение все еще будет в силе. Я сомневаюсь, что это проблема.

В отправляемом сообщении содержатся некоторые символы, которые я бы не вставил в URL, особенно «•». Вы должны URL закодировать ваше сообщение перед тем, как поместить его в ссылку (последний символ, по-видимому, кодирует %e2%80%a2). Вы можете URL кодировать его в Javascript или , кодировать его вручную с помощью онлайн-инструмента перед вставкой в ​​тег <a>.

Некоторые браузеры более расслаблены, чем другие, в обработке странных символов в URL (или в коде в целом).

Надеюсь, это поможет

...