2011-08-27 18 views
8

मेलटो लिंक संभावनाओं का उपयोग करते समय यह उपयोगकर्ता के लिए कुछ भी नहीं करता है यदि उसके पास ईमेल क्लाइंट सेटअप नहीं है, या अपने वेबमेल को अपना डिफ़ॉल्ट क्लाइंट (ea। gmail as default client in macosx)। फॉलबैक की कृपापूर्वक पेशकश करने का सबसे अच्छा तरीका क्या होगा, कृपया उपयोगकर्ता को मैन्युअल रूप से आपको ईमेल करने के लिए कहें? मैं जे एस या सीएसएस का उपयोग संदेश को दिखाने के लिए कर सकता है एक बार लिंक पर क्लिक किया गया है:मेलट्टो विफल होने पर पता चला

प्रस्तुत सफल रहा था, या कुछ भी नहीं हुआ हमें मैन्युअल ईमेल करें।

मेलटो के साथ एक फॉर्म का उपयोग करने के बारे में क्या, क्या मैं सर्वर पर स्क्रिप्टिंग के बिना या सफलता के बाद एक रीडायरेक्ट पेज का उपयोग कर सकता हूं? विफलता से सफलता को फ़िल्टर करने का कोई तरीका है, उपयोगकर्ता के फैसले पर निर्भर होने के बजाय उपरोक्त डबल सफलता/असफल संदेश?

संपादित करें: कम से कम एक राज्य को बदलने का सबसे उपयुक्त तरीका क्या होगा जब एक मेलto लिंक (या फॉर्म) क्लिक किया गया हो। जाहिर है जावास्क्रिप्ट या सीएसएस विकल्प हैं, लेकिन क्या मैं बस एक डबल एक्शन लिंक या फॉर्म सबमिट नहीं कर सकता; मेलटो और अन्य पेज से लिंक करें (आपने बटन सबमिट/क्लिक किया है ')

+4

'mailto: 'बुरा है - मेरा विश्वास करो, किसी को कारण के बिना ई-मेल क्लाइंट खोलना पसंद नहीं है। इसके बजाय सर्वर-साइड फॉर्म का उपयोग करें :)। – xfix

+1

आप किसी उपयोगकर्ता के लिए "mailto:" लिंक "काम करता है" के बारे में कुछ भी नहीं बता सकते हैं। – Pointy

+0

संबंधित: http://stackoverflow.com/questions/836777/how-to-detect-browsers-protocol-handlers – DaveRandom

उत्तर

1

आप यह नहीं पता लगा सकते कि उपयोगकर्ता के पास ईमेल क्लाइंट सेटअप है या नहीं। इसलिए मैं आपको उपयोगकर्ता से संपर्क करने के लिए सर्वर-साइड फॉर्म सेट अप करने का सुझाव दूंगा।

इसके नीचे या इसके नीचे आप उपयोगकर्ता को यह बताते हुए एक लिंक प्रदान कर सकते हैं कि यदि वह सीधे अपने मुख्य ई-मेल खाते के माध्यम से आपसे संपर्क करना चाहता है, तो वह इस लिंक पर क्लिक कर सकता है (यह लिंक mailto: लिंक है)।

उसे आपसे संपर्क करने के दो तरीके (वेबफॉर्म या ई-मेल क्लाइंट) प्रदान करके, आप उपयोगकर्ता को यह चुनने का मौका देते हैं कि वह कौन सा उपयोग करना चाहता है। तो यह उनके लिए यह समझने के लिए है कि उसके पास एक ई-मेल क्लाइंट स्थापित है या नहीं और वह इसका उपयोग करना चाहता है या नहीं।

+1

मेरे पास मेलto लिंक का उपयोग करने के लिए अच्छे कारण हैं, और संपर्क फ़ॉर्म के लिए सर्वोत्तम अभ्यास से परिचित हैं। मुझे क्लिक करने पर एक राज्य परिवर्तन प्राप्त करने में अधिक दिलचस्पी है (संपादित करें प्रश्न देखें) – newnomad

0

उपयोगकर्ता से पूछने के लिए जावास्क्रिप्ट confirm popup का उपयोग करें यदि उनके कंप्यूटर पर ईमेल सेटअप है।

+0

या मेलबॉक्स एक फॉर्म में किसी क्रिया के रूप में है, तो बस एक चेकबॉक्स। मान लीजिए कि जब आप क्लिक करने से पहले या उसके बाद उपयोगकर्ता को इसके बारे में सोचने के लिए परेशान करना चाहते हैं, तो यह यूआई निर्णय है ... – newnomad

+1

हां, मेरे पास ईमेल सेट अप है, मैं बस अपने ब्राउज़र में जीमेल टाइप करता हूं ... मान लीजिए कि उपयोगकर्ता समझेंगे प्रश्न (और [नहीं] (http: // w3fools।कॉम /) संदर्भ के रूप में डब्ल्यू 3 स्कूल्स की सिफारिश करें) – Quentin

+0

एक और दृष्टिकोण सिर्फ लिंक के बगल में एक पठनीय, कॉपी करने योग्य ईमेल पता प्रदान करता है; http://stackoverflow.com/questions/6028471/mailto-with-no-default-email-client – newnomad

8

This article मेलो पर क्लिक करने के बाद window की धुंध घटना को निकालकर जांचने के एक हैक पर चर्चा करता है। यह एक टाइमआउट का उपयोग करता है, इसलिए यह मूर्खतापूर्ण नहीं है, लेकिन अधिकांश मामलों को संबोधित कर सकता है।

(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); 
संबंधित मुद्दे