Как остановить всплывающие окна навигации браузера в браузере

496
fixer1234

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

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

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

Эта проблема

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

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

Вопросы:

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

Обновить

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



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

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

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

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

enter image description here

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

enter image description here

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

enter image description here

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

enter image description here

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



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

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

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

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

  • Блокировка определенных URL. Эти всплывающие окна не являются URL-адресами.
  • Этот вопрос на форуме поддержки Mozilla касается всплывающих окон URL, но в принятом ответе обсуждаются некоторые изменения в Firefox V61, которые можно исправить, изменив userChrome.css. Я понятия не имею, связано ли это, и это не объясняет аналогичную проблему с браузерами на базе Chromium и Microsoft. Я также не программист, поэтому, даже если это решение, оно мне не помогло.
  • Я убедился, что запуск через передачу не является неисправностью браузера из-за надстроек.
1
Я пошел на страницу продукта, завис над ссылками, и ничего не произошло. Ramhound 5 лет назад 0
@Ramhound, я протестировал его с несколькими браузерами (Firefox и Vivaldi) в Windows 7 (единственная версия, которая у меня есть), и получил то же самое, хотя я обнаружил, что не все ссылки в этой панели срабатывают при наведении курсора. Было бы интересно выяснить, в чем различия между нашими системами, потому что звучит так, будто что-то в вашей настройке является «решением». fixer1234 5 лет назад 0
Разве я не упоминал, что использовал Edge? Тем не менее, я использую Chromium на работе, и время от времени смотрю на Amazon, никогда не было проблем, которые вы описываете. Ramhound 5 лет назад 0
Это способ опоздать на это сегодня (сегодня вечером), но [я останусь здесь] (https://chat.stackexchange.com/rooms/84736/pop-up-in-browser), чтобы мы могли обсудить эти различия Ramhound 5 лет назад 0
Может помочь дополнение uBlock Origin. Biswapriyo 5 лет назад 0
@Biswapriyo, спасибо за предложение. Похоже, что это похоже на блокировщики рекламы и всплывающих окон, которые я пробовал, только это может добавить дополнительные списки. То, с чем я сталкиваюсь, - это другой тип всплывающих окон, и его не будет ни в одном списке. Это ссылки меню навигации по сайту, которые, помимо щелчка по ним, активируются, когда вы просто наводите на них курсор мыши. fixer1234 5 лет назад 0
Ничего особенного для меня с IE или Edge, страницы ведут себя точно так же по сравнению с Firefox. Эффект Amazon hover имеет небольшую задержку (100-200 мс, я думаю), в то время как эффект Walmart происходит мгновенно. Однако эффект зависания Walmart нарушен, и он часто исчезает при попытке переместить мышь во всплывающее окно. // Вы всегда можете заблокировать эти всплывающие окна - или, что еще лучше, элементы триггера - самостоятельно, используя расширенный блокировщик рекламы. Daniel B 5 лет назад 2
@DanielB, спасибо за вклад. Ты хочешь сказать, что ты получаешь парение в IE и Edge? Ramhound не получил его в Edge, а я не получил в IE, так что, похоже, что-то здесь происходит (возможно, разница настроек в браузерах Microsoft?). С Amazon иногда я получаю кратковременную задержку и могу перейти по ссылке, не вызывая ее, но обычно нет. Мне не повезло с рекламой или блокировщиком всплывающих окон. Poper Blocker также блокирует оверлеи, но я не решаюсь их перезагрузить. fixer1234 5 лет назад 0
Функция, на которую вы ссылаетесь - которая позволяет «задерживать» отображение контента только в том случае, если мыши наводятся на более длительный период, чем определенный период - называется «намерением при наведении». Имя говорит само за себя. Это решение JavaScript внутри источника веб-страницы. Без использования подключаемого модуля браузера для таргетинга определенных тегов и сайтов / доменов мало что можно сделать ... отключить Javascript для домена? Есть ли плагин, который может сделать это ?! Ps Они не всплывающие окна. обычно это скрытый HTML (уже загруженный или через AJAX), который отображается / скрывается с помощью JavaScript. Kinnectus 5 лет назад 1
@ Kinnectus, так что, похоже, я не могу это исправить, отрегулировав время наведения на моем конце. Вы спасли меня на этом пути. Если сайт использует JavaScript для показа / скрытия контента, вероятно, это не единственная функция, которая полагается на него, что предполагает, что если я отключил JavaScript, сайт вряд ли будет работать. «Обычно» все еще оставляет немного надежды (возможно, это исключения). Плагин для браузера, безусловно, будет решением, если кто-то знает о нем. Так что я пока не собираюсь сдаваться, но спасибо, что помог мне «управлять ожиданиями». :-) fixer1234 5 лет назад 0
Быстрый поиск - не проверенный - предполагает, что плагин «Переопределение ресурсов» Кайла Полсена может предложить вам возможность вставлять JavaScript на страницу по мере ее отображения вашим браузером. Возможно, вы сможете использовать / написать библиотеку / функцию hoverIntent, где вы сможете использовать ее повторно и подключить классы / идентификаторы, и при загрузке страницы она перезапишет существующую функциональность. Kinnectus 5 лет назад 0
@ Kinnectus, спасибо. Я не программист, но, похоже, потенциальное решение по крайней мере возможно. fixer1234 5 лет назад 0
@Kinnectus, я загрузил блокировщик Javascript, который позволяет блокировать на уровне сайта или вкладки. На странице Amazon исчезла функция наведения, а также некоторые другие функции на странице. На странице Walmart исчез весь этот ряд ссылок, а также некоторые другие функции. Похоже, вы были правы насчет Javascript. Теперь, если бы был только способ выборочно отключить функции, чтобы решение проблемы не убивало страницу. fixer1234 5 лет назад 0

1 ответ на вопрос

1
Kinnectus

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

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

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

проблема

enter image description here

Результат

enter image description here

исправлять

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

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

Похоже, вы были правы насчет Javascript. Это идентифицирует источник проблемы, но, будучи не программистом, я не знаю достаточно, чтобы реализовать это предлагаемое решение. +1 за определение характера проблемы и приближение меня к решению. fixer1234 5 лет назад 0
Последняя ссылка на видео была похожа на английскую, но я ничего не понял. Я пытался подключить его к Google Translate, но у него не было целевого языка "не программист". :-) Это выглядит как потенциально хороший материал, хотя, для кого-то с некоторым опытом программирования и веб-сайта. fixer1234 5 лет назад 0

Похожие вопросы