我有一个网站,动态生成了一个mailto链接,并使用window.open()在新标签页/窗口中打开。
window.open("mailto:" + encodeURIComponent(r["to"]));
在这个阶段,我正在Chrome中进行测试,因此其他浏览器可能会有所不同。
如果Chrome已经设置了mailto协议处理程序(例如GMail),则它将按预期工作。
如果Chrome没有设置mailto协议处理程序,则它只会打开一个带有mailto url的选项卡,什么也不做。
这并不是最糟糕的结果,但如果有一种方法可以事先知道,那么用户就可以以某种方式指导他们设置浏览器,使mailto url正常工作。
以前,我只是通过将window.location.href设置为url在同一页中打开。
windows.location.href = "mailto:" + encodeURIComponent(r["to"]);
这不太好,因为如果没有设置协议处理程序,什么都不会发生。如果至少能检测到这种情况,我可能会考虑这个选项,但是也找不到任何迹象。我猜一种选择是设置一个计时器,如果到达执行时间就提醒用户?其他人已经解决了这个问题吗?似乎这是一个非常普遍的需求。谢谢。