我通常喜欢 mailto:
链接。但我觉得我甚至不用检查或点击就能闻到 mailto:
链接的味道,就像某种极其无用的超能力。我知道如果我设置了默认邮件客户端,点击该链接就会执行我想要的操作,如果需要,我可以右键点击,浏览器会提供“复制电子邮件地址”选项来干净地获取它。
这很好,但 Adam Silver 和 Amy Hupe 最近 列举了 这些链接的行为问题
首先,mailto 链接使得复制地址变得困难,例如,如果您想与其他人共享电子邮件地址。
其次,一些用户使用多个邮件应用程序,而链接只使用已设置为默认的应用程序,而不给他们选择使用其他应用程序的选项。
最后,许多用户没有设置电子邮件应用程序,这意味着链接可能导致他们陷入死胡同或陷入困境。
他们的 UI 实验最终使用了 mailto:
链接,但将整个电子邮件地址作为链接,这使得链接的功能特别明显,同时还提供了一个复制按钮作为用户体验的小奖励。

tel:
链接 更奇怪,因为很多查看它们的设备都没有任何电话呼叫功能。如果它们有,它很像电子邮件链接,多个应用程序可以执行该工作(例如 WhatsApp、FaceTime 或默认电话应用程序)。
所有这些用户体验中最难的部分是为用户提供他们希望这些特殊链接类型执行的操作的选择。这就是 mailgo 试图解决的问题。它是一个小型 JavaScript 库,在您点击链接时提供 UI。


现场演示
我有点喜欢它。如果我点击这样的链接时出现这个弹出窗口,我一点也不介意,尤其是在它有“打开默认”选项的情况下,如果我想要的话。似乎满足了这些类型的特殊链接可能出现的所有问题。
有趣。我想知道它在垃圾邮件或是否有其他方法阻止机器人获取电子邮件地址方面如何工作?
太棒了!
我不能说我赞成这种方法。通常,用户为每个链接都有一个默认选项,并希望链接打开而不是弹出窗口,每次处理弹出窗口都会很烦人。
这是一个应该在浏览器(或操作系统)级别解决的问题,我不认为覆盖默认预期行为是一个好主意。在上面的示例中,Android 上的浏览器弹出窗口和应用程序选择器都询问我想要使用哪个应用程序,这显然不是很好的用户体验。我安装的一些应用程序选项也带我到网站,这显然不是我想要的。
这里描述的问题几乎不是问题,因为我使用过的每个平台都提供了一个选项,可以轻松复制地址或号码,或者复制链接,然后可以轻松手动编辑。
我不知道。首先,我没有 Outlook。他们不应该假设每个人都有。我在 iPad 上阅读它,因此所有这些选项都没有意义。我喜欢复制部分。还没有深入研究代码,但它是否允许您自定义这些选项?
虽然关于浏览器如何工作或应该如何工作是一个有趣的讨论,但请不要这样做。请不要尝试使用 JavaScript 复制浏览器行为(这应该是一个普遍的规则,在所有情况下都应遵守)。它永远无法正常工作,并且总是会立即或稍后导致各种各样的问题。
允许选择如何处理协议链接是用户代理/浏览器或操作系统的任务,而不是网站设计人员的任务。在这个示例中真正发生的事情是,用户在选择这些链接之一后通常会收到两个提示。第一个是列出不可用选项的 JavaScript 弹出窗口,第二个是用户代理/操作系统提供的真实选项。
好主意,并且实现干净简洁。奇怪的是,这种类型的功能尚未以某种形式内置到浏览器中。
但话又说回来,浏览器实现往往缺乏一致性或可定制性。你本希望到 2020 年,我们能够停止使用 JS 来弥补浏览器不一致性和样式不足。Shadow DOM 看起来很有希望,但在某些浏览器中,那些日期输入几乎无法修复。
我认为它不必要地破坏了原生实现
如果有人关心 mailto 链接,他们会将其喜欢的客户端设置为默认(除非他们是苹果的奴隶,但这只是他们自己的决定),如果他们没有,原生复制仍然只需点击一下即可,因此添加额外的弹出窗口只会减慢速度,降低预期的用户体验
我不喜欢额外的弹出窗口的想法。
我不喜欢在项目中使用第三方库(或额外的膨胀代码)仅仅为了解决一个小问题的想法。
用户有责任配置他们的设备。
最坏的情况:用户始终可以从一个应用程序复制数据,然后打开另一个应用程序并在那里使用复制的数据。
我可能错了。
太棒了!它是否无障碍,例如键盘和屏幕阅读器友好?
我 [email protected]!非常感谢您的文章!Mailgo 也可作为 Chrome 扩展程序和 Firefox 附加组件使用。这是一个开源项目,我借此机会邀请任何想要为 mailgo 贡献或提供建议的人。再次感谢。