1

Я столкнулся с раздражающим типом всплывающих окон и не могу понять, как его подавить. Проблема заключается в ссылках на определенные сайты, связанные с навигацией по веб-сайтам, которые активируются при наведении на них курсора. Это происходит со всеми браузерами. Я не помню этого поведения ранее, но я неожиданно столкнулся с этим с несколькими браузерами и несколькими сайтами.

Сайты amazon.com и walmart.com, по крайней мере, два, где я сталкиваюсь с этим. На обоих сайтах есть ряд торговых ссылок "помощников" (обведено на рисунках ниже), расположенных в верхней части страниц с товарами. Это меню навигации по сайту. Если вы нажмете одну из этих ссылок, вы перейдете на выделенную страницу.

Но есть парящая "особенность". Если навести указатель мыши на большинство из этих ссылок, появится окно с меню ссылок, сокращенной версией страницы "кликнув". Это окно покрывает большую часть экрана и остается отображаемым, пока мышь находится над любой частью всплывающего окна. Есть и другие подобные «ловушки-ловушки», разбросанные по всей странице.

Эта проблема

Проблема заключается в том, что нет задержки при наведении, поэтому простое прохождение по одной из этих ссылок рассматривается как наведение. Случайное прохождение чего-либо в этом минном поле внезапно затеняет страницу гигантским навигационным меню (или другим содержимым), которое продолжает блокировать страницу до тех пор, пока курсор мыши не будет перемещен за пределы этого окна. Хуже того, я иногда оказываюсь на новой странице, связанной с мусором во всплывающем окне.

Мой основной браузер - Firefox (V62), но я скопировал его с Chromium и Vivaldi, как в Windows 7 и Linux, так и с Internet Explorer в Windows. Даниэль Б прокомментировал, что он также повторил это с Эджем. (Ранее казалось, что браузеры Microsoft вели себя по-разному, но, похоже, это не так.)

Вопросы:

  • Можно ли легко определить используемый механизм всплывающих окон из исходного кода веб-страницы для приведенных ниже примеров ссылок?
  • Есть ли способ подавить это действие в Firefox или браузере на основе Chromium?

Обновить

@Kinnectus отметил, что Javascript, вероятно, используется для показа / скрытия всплывающего содержимого. Я отключил Javascript на этих страницах, и это механизм. К сожалению, отключение Javascript также убивает другие важные функции на странице. Таким образом, механизм был подтвержден, но любое решение должно быть более хирургическим, чем отключение Javascript.



Как воспроизвести

Я обнаружил, что воспроизвести проблему не так просто, как я думал. Похоже, что веб-сайты адаптируют контент на основе вашей предыдущей истории на сайте, от того, вошли ли вы на сайт, и даже от того, какой маршрут использовался для перехода на страницу продукта (вероятно, источником более ранней путаницы в репликации симптомов).

В качестве примера я приведу конкретную ссылку для каждого сайта, но эта вариация может ограничить способность читателя ответить. Например, я протестировал прямые ссылки ниже на компьютере моей жены и получил различные функции страницы, прежде чем заметил, что сайт "запомнил" ее, и автоматически вошел в нее. Экраны изменились, когда я вышел из нее.

Вот страница продукта на walmart.com с кружком помощника по магазинам:

Наведя или пропустив одну из кружочков:

Вот страница продукта на amazon.com с кружком помощника по магазинам:

Наведя или пропустив одну из кружочков:

На всех страницах продукта в Amazon, независимо от маршрута, ссылка « Account & Lists в правом верхнем углу демонстрирует действие наведения, но я не уверен, что это тот же механизм.



Исследование

Исследуя это, я не обнаружил в Интернете обсуждения этой проблемы с навигационными меню (но, похоже, это очень недавно, о чем также может свидетельствовать тот факт, что переход на страницу продукта через старую закладку или ссылку на историю часто не Симптом не проявляется, но доступ к той же странице с помощью нового поиска возможен). Тем не менее, существует обсуждение, касающееся всплывающих окон других типов, с такими решениями, как:

  • Изменение характеристик мыши, например MouseHoverTime . Тем не менее, я не хочу снижать производительность при использовании допустимых параметров наведения, например всплывающих подсказок. Даже если это действительно решение, MouseHoverTime - это параметр реестра Windows, и я не знаю эквивалентного параметра в Linux.
  • Блокировка всплывающих окон. Они являются частью навигации сайта, а не тем, на чем фокусируются блокировщики. У меня установлены блокировщики всплывающих окон и рекламы с самым высоким рейтингом, и они не влияют на это.

    Я установил Poper Blocker, который также может блокировать наложения. Он не обнаружил их сам по себе, и переход к контекстному меню обрабатывался как выход из окна, поэтому не было способа заставить блокировщик всплывающих окон проверить, пока окно присутствовало. Это не исключает наложения, но Poper Blocker - единственное известное мне дополнение, которое блокирует их, так что в любом случае это не приводит к решению.

  • Блокировка определенных URL. Эти всплывающие окна не являются URL-адресами.
  • Этот вопрос на форуме поддержки Mozilla касается всплывающих окон URL, но в принятом ответе обсуждаются некоторые изменения в Firefox V61, которые можно исправить, изменив userChrome.css . Я понятия не имею, связано ли это, и это не объясняет аналогичную проблему с браузерами на базе Chromium и Microsoft. Я также не программист, поэтому, даже если это решение, оно мне не помогло.
  • Я убедился, что запуск через передачу не является неисправностью браузера из-за надстроек.

1 ответ1

1

То, что вы описываете, кажется естественным дизайном навигации / дизайна веб-сайта, и браузер просто выполняет то, что просит ваша мышь - показывать меню навигации, когда ваша мышь наводит курсор на элемент, предназначенный для отображения элемента, и когда мышь покидает триггерный элемент (элементы), содержимое исчезает (или скрывается).

Содержимое флэш-памяти открывалось / закрывалось всякий раз, когда пользователь не намеревался выполнить это действие - например, когда он просто перемещал мышь по экрану по любой причине, чем нежелание перемещаться по сайту, - подсказывал решение. Насколько я помню, он называется hoverIntent (демонстрация: https://briancherne.github.io/jquery-hoverIntent/). Плагин jQuery, который разработчики могут включить в свой исходный код, который может нацеливаться на элементы и, когда целевой элемент находится в течение определенного минимального промежутка времени, запускать эффект наведения, требуемый разработчиком, например, отображать меню навигации.

Демонстрация проблемы, хотя она специально не использует оригинальный плагин hoverIntent, может быть продемонстрирована здесь (источник: http://www.csslab.cl/2015/05/07/hover-intent-moderno-en-menues-dropdown/)

проблема

Результат

исправлять

К сожалению, поскольку функциональность веб-сайта полностью зависит от разработчика (ей), очень трудно переопределить предполагаемую функциональность без использования плагинов для браузера. Одним из таких плагинов, который, кажется, предлагает возможность выборочного переопределения JavaScript и CSS для отдельных сайтов, является переопределение ресурсов Кайла Полсена, по крайней мере, для Chrome (https://chrome.google.com/webstore/detail/resource-override/pkoacgokdfckfpndoffpifphamojphii?hl = en).

Кайл Полсен предоставляет учебник YouTube, в котором рассматриваются все возможные возможности. Он выглядит очень многообещающе и выглядит так, как будто его довольно легко найти: https://www.youtube.com/watch?v=62QIWAP9mMM.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .