2011-08-27 18 views
8

Podczas korzystania z linku mailto są szanse, że nie zrobi on nic dla użytkownika, jeśli nie ma instalacji klienta poczty e-mail lub nie skonfigurował swojej poczty internetowej jako domyślnego klienta (np. gmail as default client in macosx). Jaki byłby najlepszy sposób, by z wdziękiem zaoferować pomoc, uprzejmie prosząc użytkownika o ręczne wysłanie e-maila? mogę użyć JS lub CSS, aby wyświetlić wiadomość raz link został wciśnięty:wykrywanie, kiedy mailto nie powiodło się

przedstawienia był udany, czy nic się nie stało napisz do nas ręcznie.

Co przy korzystaniu z formularza z mailto, czy mogę użyć strony przekierowania po sukcesie bez lub z użyciem skryptów na serwerze? Czy istnieje sposób, aby odfiltrować sukces z porażki, zamiast polegać na osądzie użytkownika z powyższym podwójnym sukcesem/błędem?

edytuj: Przynajmniej jest to najbardziej odpowiedni sposób zmiany stanu po kliknięciu linku mailowego (lub formularza). Oczywiście JavaScript lub css są opcjami, ale nie mogę po prostu utworzyć linku o podwójnym działaniu lub formularza; mailto, a także łącze do innej strony (przesłałeś/kliknąłeś przycisk).

+4

'mailto:' jest złe - uwierz mi, nikt nie lubi otwierania klienta poczty elektronicznej bez powodu. Zamiast tego użyj formularza po stronie serwera :). – xfix

+1

Nie można nic powiedzieć o tym, czy link "mailto:" "działa" dla użytkownika. – Pointy

+0

Powiązane: http://stackoverflow.com/questions/836777/how-to-detect-browsers-protocol-handlers – DaveRandom

Odpowiedz

1

Nie można wykryć, czy użytkownik ma konfigurację klienta poczty e-mail. Proponuję więc skonfigurować formularz po stronie serwera, aby użytkownik mógł się z Tobą skontaktować.

Poniżej lub powyżej możesz podać użytkownikowi link wyjaśniający, że jeśli chce się z tobą skontaktować bezpośrednio poprzez swoje główne konto e-mail, może kliknąć ten link (ten link jest linkiem mailto:).

Zapewniając mu dwa sposoby skontaktowania się z Tobą (klient internetowy lub e-mail), dajesz użytkownikowi możliwość wyboru, z którego chce skorzystać. Więc to od niego zależy, czy ma zainstalowanego klienta poczty e-mail i czy chce z niego korzystać.

+1

Mam dobre powody, dla których chciałbym użyć linku mailto i jestem zaznajomiony z najlepszą praktyką dotyczącą formularzy kontaktowych. Jestem bardziej zainteresowany zmianą stanu po kliknięciu (zobacz pytanie edycyjne). – newnomad

0

Skorzystaj z JavaScript confirm popup, aby zapytać użytkownika, czy ma konfigurację poczty e-mail na swoim komputerze.

+0

Lub po prostu pole wyboru, jeśli mailto ma postać akcji w formularzu. Domyślam się, że jest to decyzja użytkownika, kiedy chcesz przeszkadzać użytkownikowi, myśląc o tym, przed lub po kliknięciu ... – newnomad

+1

Tak, mam konfigurację poczty e-mail, po prostu wpisuję gmail w mojej przeglądarce ... Nie zakładaj, że użytkownicy to zrozumieją pytanie (i [nie] (http: // w3fools.com /) polecam W3Schools jako punkt odniesienia) – Quentin

+0

innym podejściem jest oferowanie czytelnego, kopiowalnego adresu e-mail obok linku; http://stackoverflow.com/questions/6028471/mailto-with-no-default-email-client – newnomad

8

This article omawia hack sprawdzenia, czy zdarzenie rozmycia window jest uruchamiane po kliknięciu na mailto. Wykorzystuje limit czasu, więc nie jest niezawodny, ale może rozwiązać większość przypadków.

(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); 
Powiązane problemy