如何停止浏览器中的网站导航悬停弹出窗口

如何停止浏览器中的网站导航悬停弹出窗口

我遇到了一种烦人的弹出窗口,不知道该如何抑制它。问题是某些网站上与网站导航相关的链接,当您将鼠标悬停在这些链接上时,这些链接就会激活。所有浏览器都会发生这种情况。我不记得以前出现过这种行为,但我突然在多个浏览器和多个网站上遇到了这种情况。

amazon.com 和 walmart.com 至少是我遇到过这种情况的两个网站。在这两个网站上,产品页面顶部附近都有一排购物“帮助”链接(下图中圈出)。这些是网站导航菜单。如果您点击其中一个链接,它会带您进入一个专门的页面。

但是有一个悬停“功能”。如果你将鼠标悬停在大多数链接上,就会弹出一个带有链接菜单的窗口,这是“点击”页面的简化版本。该窗口覆盖了屏幕的很大一部分,只要鼠标悬停在弹出窗口的任何部分上,它就会一直显示。整个页面上还散布着其他类似的“悬停陷阱”。

问题

问题是没有悬停延迟,因此只需经过其中一个链接即可被视为悬停。不小心经过这个雷区中的任何内容都会突然用巨大的导航菜单(或其他内容)遮挡页面,这会继续阻塞页面,直到鼠标光标移出该窗口。更糟糕的是,我有时会发现自己进入了与弹出窗口中的某些垃圾相关的新页面。

我的主要浏览器是 Firefox (V62),但我已在 Windows 7 和 Linux 中使用 Chromium 和 Vivaldi 以及在 Windows 中使用 Internet Explorer 复制了它。Daniel B 评论说他也在 Edge 中复制了它。(之前,微软浏览器的行为似乎有所不同,但事实并非如此。)

问题:

  • 从下面提供的示例链接的网页源代码中可以轻松确定所采用的弹出机制吗?
  • 有没有办法在 Firefox 或基于 Chromium 的浏览器中抑制此操作?

更新

@Kinnectus 评论说,Javascript 可能用于显示/隐藏“弹出”内容。我禁用了这些页面上的 Javascript,这就是机制。不幸的是,禁用 Javascript 也会破坏页面上的其他重要功能。因此,该机制已得到确认,但任何解决方案都需要比禁用 Javascript 更精确。



如何重现

我发现重现这个问题并不像我想象的那么简单。这些网站似乎会根据你之前在网站上的浏览记录、你是否登录过网站,甚至导航到产品页面的路径来定制内容(这可能是之前在重现症状时造成混淆的原因)。

我将为每个网站提供一个特定的链接作为示例,但这种变化可能会限制某些读者的回答能力。例如,我在妻子的电脑上测试了下面的直接链接,并获得了不同的页面功能,然后才注意到该网站已经“记住”了她,并自动让她登录。当我将她注销时,屏幕发生了变化。

这里有一个产品页面沃尔玛,其中购物助手行被圈出:

在此处输入图片描述

将鼠标悬停或移过其中一个带圆圈的链接:

在此处输入图片描述

这里有一个产品页面亚马逊购物助手行已圈出:

在此处输入图片描述

将鼠标悬停或移过其中一个带圆圈的链接:

在此处输入图片描述

在亚马逊的所有产品页面上,无论通过哪种途径,Account & Lists右上角的链接都会显示悬停动作,但我不能确定它是相同的机制。



研究

经过研究,我在网上没有找到关于导航菜单问题的讨论(但似乎最近才有,也可能是因为通过旧书签或历史链接进入产品页面通常不会出现这种症状,但通过新的搜索进入同一页面就会出现)。不过,有关于其他类型弹出窗口的讨论,解决方案如下:

  • 更改鼠标特性,例如MouseHoverTime。但是,我不想降低合法悬停选项(例如工具提示)的性能。即使这实际上是一种解决方案,MouseHoverTime也是 Windows 注册表设置,我不知道 Linux 中是否有等效设置。
  • 拦截弹出窗口。这些是网站导航的一部分,而不是拦截器关注的重点。我安装了评分最高的弹出窗口和广告拦截器,它们不会影响它。

    我安装了 Poper Blocker,它也可以阻止覆盖。它无法自行检测这些,并且导航到上下文菜单被视为离开窗口,因此没有办法让 Poper Blocker 在窗口存在时进行检查。这并不能完全排除覆盖,但据我所知,Poper Blocker 是唯一可以阻止覆盖的附加组件,因此无论如何,这都无法解决问题。

  • 阻止特定 URL。这些弹出窗口不是 URL。
  • 这个问题Mozilla 支持论坛上的帖子是关于 URL 弹出窗口的,但接受的答案讨论了 Firefox V61 中的一些更改,可以通过修改 来修复userChrome.css。我不知道这是否相关,也无法解释基于 Chromium 和 Microsoft 的浏览器的类似问题。我也不是程序员,所以即使这是一个解决方案,对我也没什么帮助。
  • 我已经验证,通过触发的情况不是由于附加组件导致的浏览器故障。

答案1

您所描述的似乎是网站导航/设计的自然设计,浏览器只是按照鼠标的要求进行操作 - 当您的鼠标悬停在旨在触发元素显示的元素上时显示导航菜单,当鼠标离开触发元素时,内容消失(或隐藏)。

当用户无意执行此操作时(例如,当用户出于任何原因而不是不想浏览网站而只是在屏幕上移动鼠标时),内容会闪烁打开/关闭,这促使人们提出了一个解决方案。从我记事起,它就被称为hoverIntent(演示:https://briancherne.github.io/jquery-hoverIntent/)。开发人员可以将其包含在源代码中的 jQuery 插件,该插件可以定位元素,并且当目标元素悬停在定义的最短时间内时,触发开发人员所需的悬停效果 - 例如,显示导航菜单。

尽管没有使用原始的 hoverIntent 插件,但可以在此处演示该问题(来源:http://www.csslab.cl/2015/05/07/hover-intent-moderno-en-menues-dropdown/

问题

在此处输入图片描述

结果

在此处输入图片描述

使固定

不幸的是,由于网站的功能完全由开发人员决定,因此如果不使用浏览器插件,很难覆盖预期的功能。Kyle Paulsen 的插件似乎可以选择性地覆盖各个网站的 JavaScript 和 CSS。资源覆盖,至少对于 Chrome 来说(https://chrome.google.com/webstore/detail/resource-override/pkoacgokdfckfpndoffpifphamojphii?hl=en)。

Kyle Paulsen 提供了一个 YouTube 教程,介绍了所有可能的功能 - 看起来是一个非常有前途的解决方案,并且看起来相当容易掌握:https://www.youtube.com/watch?v=62QIWAP9mMM

相关内容