单击 Command 键不会打开新选项卡,但单击中键可以打开新选项卡

2023-12-25

在我的网站上,这是一个使用 Sammy.js 和 jQuery 的单页 JS 网站,当我用鼠标中键单击链接时,该链接会在新选项卡中打开。但当我在 Mac 上按住命令单击时,却没有。这种情况在 Firefox 和 Chrome 中都会发生,所以我认为它一定在某种程度上符合规范。

这种情况发生在 Macbook Air 上(即触控板 + 命令按钮)。不过,大多数网站都可以正常工作,命令单击与普通的中键单击相同。

自己尝试一下:https://circleci.com https://circleci.com。在“关于”、“主页”和“联系人”之间按住 Command 键单击,您应该会遇到问题 - 它们不会在新选项卡中打开。


Speculating here, but will confirm later from a Mac. This has been confirmed to be working on a Mac.

Win ctrl+单击或 Mac 命令+单击会被“正常”单击侦听器拾取,就像使用任何其他修饰键(alt+单击、shift+单击等)进行的单击一样。

这特别令人困惑,因为 ctrl+clickon a Mac被解释为在操作系统级别上右键单击。另一方面,按住 Command 键单击是not解释为中键单击,而是浏览器首选项。

假设您没有专门依赖于修改点击的站点内功能,那么从点击侦听器中排除此类事件是适当的,而是允许它们冒泡以由浏览器本机处理。鉴于经验处于类似情况的人 http://groups.google.com/group/mootools-users/browse_thread/thread/c09106ef2d8f6a83/f7600acffd78e30a,您应该能够将以下内容添加到单击处理程序(可能是 Brilliand 指出的库级别的委托):

if (e.metaKey || e.ctrlKey) return;

当添加到处理程序的开头时e引用当前的点击事件,这应该避免以下任何事件e.preventDefault();

Update:

它确实有效!在这个相当简约的小提琴 http://jsfiddle.net/ovfiddle/cqbBj/,我能够识别何时单击命令或单击控制,以避免执行其余的单击处理程序,其中包括 ajax 获取内容和e.preventDefault();。这允许在 Mac 上“按预期”处理命令单击,即在新选项卡中打开链接。

考虑到这一发现,这些行 https://github.com/quirkey/sammy/blob/master/lib/sammy.js#L274现在应该读

if (e.isDefaultPrevented() || e.metaKey || e.ctrlKey) {
    return;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单击 Command 键不会打开新选项卡,但单击中键可以打开新选项卡 的相关文章

随机推荐

  • 如何限制docker容器上传的速率?

    我需要防止长时间运行的多 TB 上传耗尽我的所有网络带宽 但我只能在进程级别限制其带宽使用 这意味着减慢整个计算机的网络接口或减慢该用户的网络流量不会工作 幸运的是 上传是用 Docker 容器化的 我该怎么做才能减慢 docker 容器的
  • PHP后台进程

    我写了一个 php irc 机器人 但我需要它在后台工作 有了这个 就不会有退出之类的事情了 做这个的最好方式是什么 感谢致敬 看看下面的网站 关于如何编写 PHP 守护进程有一个相当深入的解释 http kevin vanzonnevel
  • 二维等距网格中的点击检测?

    我从事网络开发已经很多年了 我正在慢慢地参与游戏开发 对于我当前的项目 我有这个等轴测图 我需要使用算法来检测正在单击哪个字段 顺便说一句 这一切都是在浏览器中使用 Javascript 实现的 The map看起来像this https
  • Adobe InDesign .jsx 脚本 执行 .jsx 脚本

    完成执行另一个 jsx 脚本后 如何才能让我的 jsx 脚本执行完毕 也许这将有助于理解我正在尝试做的事情 WebCard jsx file function mySnippet
  • 如何在 GitHub Markdown 中垂直对齐元素?

    如何垂直对齐下图中的图像和文字 我在 Markdown 中是这样写的 a a Download https api bintray com packages edsilfer maven search interface images do
  • 如何获取“Angular2 for TypeScript”(测试版)中的 li-Element 以添加特定的 CSS 类?

    在我的 Angular2 项目中 我试图实现一个搜索框 其结果框看起来就像在 Google 中一样 这就是我得到的并且它有效 但不幸的是 当您搜索某些内容并按 key down 或 key up 时 结果框中的搜索结果不会像 Google
  • for 循环处理不同的变量名

    我正在编程一段时间 但为此我还找不到答案 假设我想在更改变量名称时运行循环 可以说我有 int ran1 int ran2 int ran3 现在我想运行一个 for 循环 将数字放入其中 for int k 0 k lt 3 k ran
  • SOAP 泛型类型序列化

    我们创建了一个类来包装 Web 服务响应的有效负载和公共信息 如下所示 public class ItemResponse
  • 两个第 3 方库中 uint32 的 Typedef 重新定义 (C2371)

    在我的应用程序中我使用Box2D http www box2d org and 蜘蛛猴 https developer mozilla org en spidermonkey 这两个库都定义了 uint32 类型 这显然在同一编译单元中使用
  • 如何使用 SHOW TABLES 只获取表而不获取视图?

    SHOW TABLES为您提供表格 视图 如何仅检索表 show full tables where Table Type BASE TABLE 逐字 或者换句话说 show full tables where Table Type VIE
  • iOS:从 Storyboard 中唯一标识 ViewController

    我有一个习惯ViewController这意味着可重用 并且任意数量的实例将被链接在一起NavigationController在 Storyboard 中 所有这些都与委托共享相同的模型 The ViewController需要告诉模型它
  • 在 macOS 10.12+ 中接收承诺的电子邮件

    以前 我使用以下方法从 Mail app 中拖放的电子邮件 线程 中发现电子邮件元数据 if let filenames draggingInfo namesOfPromisedFilesDropped atDestination URL
  • SimpleQueue 与 Python 中的队列 - 使用 SimpleQueue 的优点是什么?

    The queue 同步队列类 https docs python org 3 library queue html只是简单地指出 SimpleQueue 允许的函数较少 我需要用于多线程应用程序的非常基本的队列功能 使用 SimpleQu
  • Java中如何信任证书颁发机构?

    我的应用程序连接到 SSL Web 服务 该服务使用证书来验证其身份 最近 该证书发生了变化 由于它不是由受信任的机构签名的 因此我的部分应用程序失败了 为了防止将来出现这种情况 该服务的建议是我应该开始信任现有证书的签名机构 而不是单个证
  • iPhone 特别分配为团队管理员并拥有团队代理证书?

    我是我们公司 ADC 上 iPhone 项目的团队管理员 但不是团队代理 团队代理 作为一个单独的人 能否为我提供一份分发配置文件的副本 我可以将其与 XCode 一起使用来创建临时构建 这是因为团队代理人员不是技术人员 但他们是报名参加该
  • 包含函数的 JSON

    我有一个网站 它返回类似 JSON 的数据结构 如下所示 name tom jones no 123 storedproc function callbuyer 0123 我正在使用这些数据 ajax 数据类型为 JSON 不幸的是 我的
  • WCF:FaultContract(typeof(ExceptionDetail))问题

    我已经把属性 FaultContract typeof ExceptionDetail 为我的运营合同 当我尝试将服务添加到客户端应用程序时 出现此错误 Custom tool error Failed to generate code f
  • WebAPI ModelBinder 错误

    我已经实现了ModelBinder但它是BindModel 方法未被调用 我收到错误代码 500 并显示以下消息 Error 不能 从 MyModelBinder 创建一个 IModelBinder 请确保它派生 来自 IModelBind
  • 骆驼路线和终点

    我一直在仔细研究 Apache Camel 文档 试图对其两个最重要的内容有具体的了解basic概念 端点和路由 尽管这些术语在整个文档中随处可见 但我找不到任何参考资料来实际定义它们是什么以及它们的用途 尽管他们的名字听起来相当明显 而且
  • 单击 Command 键不会打开新选项卡,但单击中键可以打开新选项卡

    在我的网站上 这是一个使用 Sammy js 和 jQuery 的单页 JS 网站 当我用鼠标中键单击链接时 该链接会在新选项卡中打开 但当我在 Mac 上按住命令单击时 却没有 这种情况在 Firefox 和 Chrome 中都会发生 所