2011-08-27 51 views
8

Khi sử dụng liên kết mailto cơ hội là nó không làm bất cứ điều gì cho người dùng nếu anh ta không có thiết lập email khách, hoặc không thiết lập webmail của mình làm khách hàng mặc định của mình (ea. gmail as default client in macosx). Điều gì sẽ là cách tốt nhất để cung cấp dự phòng một cách duyên dáng, vui lòng yêu cầu người dùng gửi email cho bạn theo cách thủ công? Tôi có thể sử dụng JS hoặc css để hiển thị thông báo khi liên kết đã được nhấp:phát hiện khi mailto không thành công

gửi thành công hoặc nếu không có gì xảy ra, vui lòng gửi email cho chúng tôi theo cách thủ công.

Điều gì về việc sử dụng biểu mẫu với mailto, tôi có thể sử dụng trang chuyển hướng khi thành công mà không có hoặc với scriptide không? Có cách nào để lọc ra thành công từ thất bại, thay vì dựa vào đánh giá của người dùng với thông báo thành công/thất bại kép ở trên không?

chỉnh sửa: Ít nhất điều gì sẽ là cách phù hợp nhất để thay đổi trạng thái khi liên kết mailto (hoặc biểu mẫu) đã được nhấp. Rõ ràng JavaScript hoặc css là các tùy chọn, nhưng tôi không thể đơn giản tạo liên kết hành động kép hoặc gửi biểu mẫu; mailto và cũng liên kết đến một trang khác (bạn đã gửi/nhấp vào nút ')

+4

'mailto:' là xấu - tôi tin tưởng, không ai thích mở ứng dụng email mà không có lý do. Sử dụng biểu mẫu phía máy chủ thay thế :). – xfix

+1

Bạn không thể nói bất cứ điều gì về việc liệu một "mailto:" liên kết "hoạt động" cho một người dùng. – Pointy

+0

Liên quan: http://stackoverflow.com/questions/836777/how-to-detect-browsers-protocol-handlers – DaveRandom

Trả lời

1

Bạn không thể phát hiện người dùng có thiết lập ứng dụng email hay không. Vì vậy, tôi khuyên bạn nên thiết lập biểu mẫu phía máy chủ để người dùng liên hệ với bạn. Nếu bạn muốn liên lạc trực tiếp với bạn thông qua tài khoản e-mail chính của mình, anh ấy có thể nhấp vào liên kết này (liên kết này là liên kết mailto:).

Bằng cách cung cấp cho anh ta hai cách liên hệ với bạn (biểu mẫu web hoặc ứng dụng e-mail), bạn cung cấp cho người dùng cơ hội để chọn người mà anh ta muốn sử dụng. Vì vậy, đó là vào anh ta để nhận ra hay không, ông đã có một khách hàng e-mail được cài đặt và có hay không anh ta muốn sử dụng nó.

+1

Tôi có lý do chính đáng để muốn sử dụng liên kết mailto và tôi quen với cách thực hành tốt nhất cho biểu mẫu liên hệ. Tôi quan tâm nhiều hơn đến việc thay đổi trạng thái khi nhấp vào (xem chỉnh sửa câu hỏi) – newnomad

0

Sử dụng JavaScript confirm popup để hỏi người dùng xem họ có thiết lập email trên máy tính của họ hay không.

+0

Hoặc chỉ một hộp kiểm nếu mailto ở dạng hành động trong biểu mẫu. Đoán đó là một quyết định giao diện người dùng khi bạn muốn làm phiền người dùng nghĩ về nó, trước hoặc sau khi nhấp chuột ... – newnomad

+1

Có, tôi đã thiết lập email, tôi chỉ cần nhập gmail vào trình duyệt của mình… Đừng cho rằng người dùng sẽ hiểu rằng câu hỏi (và [không] (http: // w3fools.com /) đề xuất W3Schools làm tài liệu tham khảo) – Quentin

+0

một cách tiếp cận khác là chỉ cung cấp địa chỉ email có thể đọc được, có thể sao chép bên cạnh liên kết; http://stackoverflow.com/questions/6028471/mailto-with-no-default-email-client – newnomad

8

This article thảo luận về một hack kiểm tra xem sự kiện mờ của window có được kích hoạt sau khi nhấp vào mailto hay không. Nó sử dụng một thời gian chờ, vì vậy nó không phải là dễ dàng, nhưng có thể giải quyết hầu hết các trường hợp.

(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); 
Các vấn đề liên quan