обнаружение, когда mailto не удалось - PullRequest
9 голосов
/ 27 августа 2011

При использовании почтовой ссылки есть вероятность, что пользователь ничего не сделает, если у него не настроен почтовый клиент или он не настроил свою веб-почту в качестве клиента по умолчанию (например, gmail как клиент по умолчанию в macosx ). Что было бы лучшим способом изящно предложить запасной вариант, любезно попросив пользователя вручную написать вам электронное письмо? Я мог бы использовать JS или CSS, чтобы показать сообщение после того, как ссылка была нажата:

Отправка прошла успешно, или если ничего не произошло, пожалуйста, напишите нам вручную.

Как насчет использования формы с mailto, могу ли я использовать страницу перенаправления в случае успеха без или со сценариями на стороне сервера? Есть ли способ отфильтровать успех от неудачи вместо того, чтобы полагаться на суждение пользователя с сообщением о двойном успехе / неудаче выше?

edit: По крайней мере, какой будет наиболее подходящий способ изменения состояния при щелчке по ссылке (или форме) mailto. Очевидно, JavaScript или css являются опциями, но я не могу просто создать ссылку двойного действия или отправить форму; mailto, а также ссылка на другую страницу (вы отправили / нажали кнопку ')

Ответы [ 3 ]

10 голосов
/ 11 марта 2015

В этой статье обсуждается, как проверить, произошло ли событие размытия window после нажатия на mailto. Он использует тайм-аут, поэтому он не защищен от ошибок, но может помочь в большинстве случаев.

(function($)) {
  $('a[href^=mailto]').each(function() {
    var href = $(this).attr('href');
    $(this).click(function() {
      var t;
      var self = $(this);

      $(window).blur(function() {
        // The browser apparently responded, so stop the timeout.
        clearTimeout(t);
      });

      t = setTimeout(function() {
        // The browser did not respond after 500ms, so open an alternative URL.
        document.location.href = '...';
      }, 500);
    });
  });
})(jQuery);
1 голос
/ 27 августа 2011

Вы не можете определить, есть ли у пользователя настройки клиента электронной почты. Поэтому я бы предложил вам настроить серверную форму, чтобы пользователь мог с вами связаться.

Ниже или выше вы можете предоставить пользователю ссылку, объясняющую, что, если он хочет связаться с вами напрямую через свою основную учетную запись электронной почты, он может щелкнуть эту ссылку (эта ссылка является ссылкой mailto:).

Предоставляя ему два способа связаться с вами (веб-форма или почтовый клиент), вы даете пользователю возможность выбрать, какой из них он хочет использовать. Поэтому он должен понять, установлен ли у него почтовый клиент и хочет ли он его использовать.

0 голосов
/ 29 августа 2011

Используйте JavaScript Подтвердите всплывающее окно , чтобы узнать у пользователя, настроены ли на его компьютере настройки электронной почты.

...