防止 Chrome 使用鼠标中键点击时在同一选项卡中打开锚链接

防止 Chrome 使用鼠标中键点击时在同一选项卡中打开锚链接

我注意到,当链接的目标(URL)指向同一个网站时,Windows 版 Chrome 处理使用鼠标中键(滚轮)点击链接的方式最近发生了变化。

几个月(几年?)以来,用鼠标中键点击任何链接,总是在新选项卡中打开。它充当选择在新标签页中打开链接从上下文菜单中。此行为是永久性的并且始终发生,无论目标 URL 链接是什么。

最近,我注意到一个变化。当链接地址指向同一个网站(锚定链接)时,Chrome 总是在同一个选项卡中打开它,即使用户用鼠标中键单击该链接(强制新选项卡)。

是否有人知道,上述变化是否是永久性的,以及是否有任何方法可以预防它(切换回“旧”行为,其中所有中键单击的链接都在新选项卡中打开)?

编辑案件解决(安装扩展在答案中提出)。为了将来参考和寻找生动示例的人——这里是其中之一(Yii 框架类参考):

1. 参观CDbColumn类定义。

queryScalar2.在第三段末尾的链接上单击鼠标中键(可随意测试其他)。

3. 切换到打开的选项卡并单击query属性表下方唯一段落中的链接。

所有链接都是内部/锚定链接,都指向同一个(自己)CDbColumn页面。如果不安装“修复”扩展,第一个 ( queryScalar) 链接会在新选项卡中打开,而第二个 ( query) 会在同一个选项卡中打开。

更糟糕的是,我分析了上述每个链接的源代码,以查看出现的问题是否由 HTML 代码中的某些错误/更改引起。两个链接的代码都是相同

<a href="/doc/api/1.1/CDbCommand#queryScalar">queryScalar</a>

<a href="/doc/api/1.1/CDbCommand#query">query</a>

所以,这显然是 Chrome 中的一个错误。

答案1

根据线程和错误追踪器它链接到的,这似乎是 Chrome/Webkit 处理中键单击触发的 onclick 事件的方式存在问题。

不管你信不信,实际上有一个扩大据称可以修复此错误(尽管 Google 在报告此错误五年后仍未修复)。我只对其进行了简短测试,但似乎可以正常工作。

答案2

这可能是也可能不是 Chrome 的一个错误,但该网站肯定做了一些非标准的事情。

就像链接到的错误报告一样Cyber​​tox 的答案提到当使用鼠标中键单击目标时,Javascript“单击”事件的行为未定义/不一致。

您在问题中提到的网站使用了一些 Javascript 来更改锚点目标。请注意,当您将鼠标悬停在“查询”链接上或查看其来源时,目标是#query,但是如果您单击该链接并查看地址栏,则哈希是#query-detail

你会注意到,在一个正确执行此操作的网站上,单击鼠标中键锚链接(例如VirtualBox 的文档) 运行正常。您可能希望通知网站所有者其代码中存在错误。

相关内容