Javascript 检测mailto何时失败
使用mailto链接时,如果用户没有电子邮件客户端设置,或者没有将其webmail设置为默认客户端(ea),则很可能对用户没有任何帮助。 优雅地提供回退的最佳方式是什么,请用户手动向您发送电子邮件? 单击链接后,我可以使用JS或css显示消息: 提交成功,或者如果没有发生任何事情,请手动向我们发送电子邮件 如果将表单与mailto一起使用,我是否可以在不使用或使用服务器端脚本的情况下成功使用重定向页面?是否有一种方法可以从失败中过滤成功,而不是依赖用户对上面的双成功/失败消息的判断Javascript 检测mailto何时失败,javascript,css,forms,mailto,server-side,Javascript,Css,Forms,Mailto,Server Side,使用mailto链接时,如果用户没有电子邮件客户端设置,或者没有将其webmail设置为默认客户端(ea),则很可能对用户没有任何帮助。 优雅地提供回退的最佳方式是什么,请用户手动向您发送电子邮件? 单击链接后,我可以使用JS或css显示消息: 提交成功,或者如果没有发生任何事情,请手动向我们发送电子邮件 如果将表单与mailto一起使用,我是否可以在不使用或使用服务器端脚本的情况下成功使用重定向页面?是否有一种方法可以从失败中过滤成功,而不是依赖用户对上面的双成功/失败消息的判断 编辑:至少在
编辑:至少在单击mailto链接(或表单)时,更改状态的最合适方式是什么。显然JavaScript或css是可选的,但我不能简单地创建一个双操作链接或表单提交;mailto并链接到另一个页面(您已提交/单击了按钮)您无法检测用户是否有电子邮件客户端设置。因此,我建议您设置一个服务器端表单,以便用户与您联系 在该链接下方或上方,您可以向用户提供一个链接,向用户解释如果他想通过其主要电子邮件帐户直接与您联系,他可以单击此链接(此链接是
mailto:
链接)
通过向用户提供两种与您联系的方式(webform或电子邮件客户端),您可以让用户有机会选择要使用的方式。因此,这取决于他是否安装了电子邮件客户端,以及他是否想使用它。使用JavaScript询问用户是否在他们的计算机上安装了电子邮件。讨论了一种检查单击邮件发送后是否触发了窗口的模糊事件的方法。它使用了一个超时,所以它不是万无一失的,但可以解决大多数情况
(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);
mailto:
不好-相信我,没有人喜欢无缘无故地打开电子邮件客户端。改为使用服务器端表单:)。您无法判断“mailto:”链接是否对用户有效。相关:@xfix,因为这是关于SO re的1/2问题。mailto加载失败,让我为您修复:没有人喜欢无故打开未使用的桌面电子邮件客户端。自11年以来,我们已经走过了漫长的道路:不幸的是,据我所知。。。这么长的一段路不包括故障事件……服务器端表单并不理想,因为它们可能被滥用。我们要做的是打开mailto,并显示一个带有gmail链接的对话框。这并不理想,但似乎是最好的妥协。(这是一个邀请按钮)。我有很好的理由想使用mailto链接,并且熟悉联系表单的最佳实践。我更感兴趣的是在单击时获得状态更改(请参见编辑问题),或者如果邮件是以表单中的操作形式发送的,则仅获取复选框。我猜这是一个用户界面决定,什么时候你想打扰用户思考它,在点击之前或之后…是的,我已经设置了电子邮件,我只是在我的浏览器中键入gmail…不要假设用户会理解这个问题(并推荐W3Schools作为参考)。另一种方法是在链接旁边提供一个可读、可复制的电子邮件地址;