仅当使用 Web 邮件客户端时,Mailto 链接才会在新选项卡中打开

2024-01-15

我有一个网页,可创建联系人及其电子邮件地址列表。对于 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(使用前将#替换为@)

仅当使用 Web 邮件客户端时,Mailto 链接才会在新选项卡中打开 的相关文章

随机推荐

  • 如何更改 Twitter 的分享按钮高度?

    如何更改 Twitter 的图标高度 我有另一个自定义图像 但高度保持不变 我该如何解决 https dev twitter com docs tweet button https dev twitter com docs tweet bu
  • 调试 valgrind 生成的核心

    Valgrind 生成了一个 vgcore NNNN 文件 如何使用 GDB 调试核心 我是否需要使用原始可执行文件并提供核心 还是有其他方法可以做到这一点 使用 valgrind 作为 root 可执行文件似乎不起作用 并且直接在 GDB
  • Pthread Thread-Local-Singleton,什么时候释放TLS Key?

    我使用 pthread TLS 实现了一种 线程本地单例 我想知道在这种情况下如何 以及何时 删除 pthread key t 因为就像现在一样 TLS 密钥使用的内存永远不会释放 d 其预期用法是让类 A 从 ThreadLocalSin
  • 此操作的超级权限

    我创建我的数据库和用户navid在我的共享服务器中cpanel databases gt mySQL Databases gt add new user 然后为用户选择所有权限navid 我正在导入mydatabase sql当我遇到这个错
  • iOS Storyboards/NIB 底层剖析。它们是如何实施的?

    我开始对 iOS 中的 NIB Storyboards 机制的底层细节感兴趣 我想更多地了解它们的实现 我对开发自己的机制感兴趣 我找到了一些关于NIB 文件 https developer apple com library mac do
  • psutil 已满足要求

    我正在尝试使用命令 pip install psutil 安装 lib psutil 当我运行这段代码时 我得到了这个 Requirement already satisfied psutil in opt conda lib python
  • Heroku 将数据库从一个应用程序传输到另一个应用程序

    我需要将数据库从 app 1 传输到 app 2 我在 app 1 上创建了备份 然后跑 heroku pg 备份恢复 HEROKU POSTGRESQL COLOR app app 2heroku pgbackups url app ap
  • Django 收到意外的关键字参数“id”

    我正在尝试在 Django 中创建电话簿 我的网址 py urlpatterns url r views people list name people list url r P
  • std::string_view 到底比 const std::string& 快多少?

    std string view http en cppreference com w cpp string basic string view已经发展到 C 17 并被广泛推荐使用它来代替const std string 原因之一是性能 有
  • 快速标签仅留下边框

    一起早上好 i have a tableview like this 例子 在第一单元格中 我的右侧有一个红色文本标签 从它的左边我包括一个像灰线一样的图像 使用此代码我可以设置完整的绿色边框 cell Label layer border
  • 一起工作时间最长的一对员工——Python/Pandas

    我最近必须编写一个代码 返回在一个共同项目上合作最多的一对员工 这是我想出的代码 注1 Null 被程序读取为 今天 注 2 数据来自以下形式的 txt 文件 EmpID ProjectID DateFrom DateTo 1 101 20
  • 使用 Mongo-Hadoop 连接器通过 Apache Spark 更新 MongoDb 中的集合

    我想通过 Java 中的 Spark 更新 MongoDb 中的特定集合 我正在使用用于 Hadoop 的 MongoDB 连接器 https github com mongodb mongo hadoop检索并保存信息阿帕奇火花 http
  • git rebase 合并冲突

    我分叉了一个 github 存储库并在我的 github 存储库上工作 我已经提出了拉取请求并且已经完成 之后上游又有了一些提交 所以现在我想重新设置基准 我想这就是我必须做的 但我遇到了这些合并冲突 First rewinding hea
  • PostgreSQL 用户列表

    我想获取 psql 中某个数据库的用户列表 例如 template0 用户是谁 或者对于 template1 数据库 那里的用户是谁 已经尝试过 du no database is Listed not Users Select from
  • 不同环境的实体框架数据迁移

    有一些特定于开发 测试 生产环境的基础数据 我们现在在所有环境中使用实体框架迁移 但不知道如何以指定仅在开发 测试 生产上执行的迁移的方式为特定环境指定迁移 这可以在 Fluent Migrator 中使用标签属性来完成 但是实体框架呢 当
  • 如何在 Angular 2 应用程序中添加 reCAPTCHA?

    如何将 reCAPTCHA 集成到 Angular 2 应用程序中 假设您有 reCAPTCHA 给出的站点密钥和客户端密钥 将以下代码放入组件中 ViewChild captchaRef2 captchaRef2 ElementRef p
  • 操作栏中的最后一个选项卡被裁剪,消失在屏幕上

    我正在制作一个使用标签进行导航的 Android 应用程序 我在操作栏中最后一个选项卡的渲染时遇到问题 它会离开屏幕并被裁剪 据我所知 只要选项卡数量太大而无法适应屏幕宽度 就会发生这种情况 我正在使用ActionBar NAVIGATIO
  • 通过可观察限制重播缓冲区

    我有一个包含实时数据的流 以及一个基本上分隔属于一起的实时数据部分的流 现在 当有人订阅实时数据流时 我想向他们重播实时数据 但是 我不想记住所有实时数据 只想记住自上次其他流发出值以来的部分数据 有一个问题 https rx codepl
  • Play Framework 自定义资源:如何复制到目标?

    我有一个 csv 文件 必须在应用程序启动时读取该文件 我如何才能将此文件复制到目标 以 运行 或 启动 它 我正在尝试使用全局级访问此文件Global class getResourceAsStream file csv 但结果始终为空
  • 仅当使用 Web 邮件客户端时,Mailto 链接才会在新选项卡中打开

    我有一个网页 可创建联系人及其电子邮件地址列表 对于 mailto 链接 您有两个选项 1 在当前窗口中打开它或 2 在新选项卡 窗口中打开它 我看到双方都存在潜在的缺点 对于网络邮件客户端 例如 gmail 选项 1 并不理想 因为它会劫