我有一个网页,可创建联系人及其电子邮件地址列表。对于 mailto 链接,您有两个选项:(1) 在当前窗口中打开它或 (2) 在新选项卡/窗口中打开它。
我看到双方都存在潜在的缺点:
- 对于网络邮件客户端(例如 gmail),选项 1 并不理想,因为它会劫持窗口,并且用户必须以某种方式导航回应用程序
- 对于桌面邮件客户端,第一个选项并不理想,因为现在您有一个空白窗口/选项卡处于打开状态
是否有办法“检测”打开的网页是否有内容,如果没有则关闭它?
基于此链接:
检测基于 Web 的邮件客户端与本地邮件客户端的 mailto 链接 https://stackoverflow.com/questions/31837370/detecting-web-based-mail-client-vs-local-mail-client-for-a-mailto-link
我尝试了以下方法来获取body
:
const windowRef = window.open(`mailto:${email}`, '_blank')
const body = windowRef.document.body
我遇到的问题是body
每个文档的内容都是空的:<body></body>
我认为这是因为它没有足够的时间来加载页面,所以我尝试setTimeout
但后来我得到了Blocked a frame with origin "myhostman" from accessing a cross-origin frame.
有什么想法可以支持网络和桌面邮件客户端而不存在上述缺点吗?
这很笨拙,但它might做你需要做的事:
你可以有一个SendEmail()
函数定义如下:
function SendEmail() {
const windowRef = window.open(`mailto:[email protected] /cdn-cgi/l/email-protection`, '_blank');
windowRef.focus();
windowRef.onfocus = function() {
return;
}
setTimeout(function(){
windowRef.close();
},500);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)