是否有可能阻止 Javascript 检测鼠标中键单击?

是否有可能阻止 Javascript 检测鼠标中键单击?

我开始注意到越来越多的网站开始实施旨在控制我的在线体验的 Javascript 逻辑。他们实施的方法之一是检测鼠标中键点击,这样链接就会在其专有查看器中打开,而不是在新选项卡中打开。

做得最多的是 Bing 和 Facebook,我不喜欢它。当我用鼠标中键单击 Bing 搜索中的图像或某人的 FB 相册中的照片时,网页会打开其专有的模式窗口。但是,我可以右键单击链接并在新选项卡中打开,但我更喜欢中键单击。此外,Instagram 等一些网站甚至修改了右键单击上下文菜单,以便您无法保存图像(至少不那么容易),因此 Bing 和 Facebook 开始做类似的事情可能只是时间问题。

答案1

简短的回答:不,但因为事实并非如此。

您所遇到的行为与您想象的不一样。您的浏览器使用鼠标中键单击在新选项卡中打开链接,但网站仍将此解释为单击。网站实际上并不知道您正在尝试在新选项卡中打开某些内容,因此它只是执行单击时通常执行的操作。

当您在 Facebook 上单击图片时,它会弹出一个黑框,但您实际上并没有打开新页面,而只是打开了您之前所在页面的另一部分。中键单击不会改变这一点,因为这是页面功能不可或缺的一部分。中键单击可能仍会在新选项卡中打开页面,但这是与您之前所在页面相同的页面,根本不是新页面。

这是一种较新的设计模式,许多网站都试图通过在一个页面中显示内容,并动态获取新内容(使用一种称为 AJAX 的技术)并使用 JavaScript 重新填充页面来减少页面加载。这样的网站具有更流畅的用户体验,对大多数人来说都更容易使用。

那么您可以禁用此功能吗?从技术上讲……是的,复杂的用户脚本可以拆分页面并按照您想要的方式重新制作。但这需要大量工作,而且没有太多好处。网站开发人员投入了大量时间来使其按其方式工作,您基本上需要重写整个前端才能使其按照您描述的方式运行。再说一遍,这不是网站以任何方式颠覆浏览器操作,网站没有做错任何事。现在发生的事情是,许多网站的设计方式不符合您熟悉的使用模式。您可以尝试完全禁用 JavaScipt,但这更有可能使网站无法使用而不是有所帮助。大多数主要网站确实会尝试确保在您执行此操作时它们不会崩溃,但没有保证。

现在我说网站不知道你点击了哪个按钮,这是一般来说确实如此,但网站也有可能发现。Stack Overflow 上的这个问题解释了如何发现:如何检测鼠标中键单击?。基本答案是,当触发点击事件时,会提供有关点击了哪个按钮的信息,这些信息可用于确定如何处理该事件。但是最多网站不会使用这些信息,使用这些信息的网站很可能是游戏或其他特殊类型的交互式内容。

相关内容