Задать вопрос
@jib

Почему клик средней клавишей мыши по карточке товара на сайте Ozon в Firefox перемещает фокус на открываемую вкладку?

Я пользуюсь Firefox, но такое же наблюдается и в EDGE (а Хром не проверял).

Ожидаемое поведение при клике по ссылке Средней Клавишей Мыши (СКМ) - открытие ссылки в новой вкладке фоном. Так оно и работает на большинстве сайтов.

На www.ozon.ru вводим поисковой запрос, в результатах поиска кликаем СКМ по карточке товара — ссылка открывается в новой вкладке и фокус перемещается на неё.

Можно как-то заставить работать СКМ на сайте Озона стандартным образом?

upd: данное поведение на Firefox 128.6.0esr и EDGE последней версии (132.0.2957.127). На Firefox последней версии по СКМ открывается две одинаковых вкладки, но фокус не переводится.
  • Вопрос задан
  • 506 просмотров
Подписаться 2 Простой 10 комментариев
Решения вопроса 1
@Kazaams
На сайте Ozon действительно наблюдается нестандартное поведение при нажатии средней кнопкой мыши (СКМ) по карточке товара. Вместо стандартного открытия ссылки в новой вкладке фоном, сайт переводит фокус на новую вкладку, что доставляет неудобства, особенно если вы хотите продолжить просмотр товаров на текущей странице.

Это поведение замечено в браузерах Firefox и Microsoft Edge, как вы упомянули, но аналогично проявляется и в Google Chrome. Оно связано с логикой обработки кликов на сайте Ozon, которая перехватывает событие СКМ и открывает новую вкладку с переводом фокуса.

Решение: Можно использовать пользовательский скрипт через расширение Tampermonkey для исправления этого поведения. Скрипт предотвращает нестандартное открытие новой вкладки при нажатии СКМ, не портя работу левой кнопки мыши (ЛКМ). Скрипт протестирован 01.02.2025 в Google Chrome с Tampermonkey, но должен также работать в Firefox, Edge и других браузерах, поддерживающих Tampermonkey.

Проблемы, которые решает скрипт:
1. В списке товаров: теперь ссылка через СКМ открывается в новой вкладке фоном (вместо открытия со сменой фокуса на открытую вкладку).
2. В "Рекомендуем также" в карточке товара: теперь ссылка через СКМ открывается в новой вкладке фоном (вместо открытия в текущей вкладке с перекрытием открытого товара).
Как установить:
1) Установите расширение Tampermonkey в браузере:
Tampermonkey для Chrome
Tampermonkey для Firefox
Tampermonkey для Microsoft Edge
2) Создайте новый скрипт в Tampermonkey и вставьте следующий код:
// ==UserScript==
// @name         Ozon Middle Click Fix (от 01.02.2025)
// @namespace    http://tampermonkey.net/
// @version      1.2
// @description  Восстанавливает стандартное поведение средней кнопки мыши на ozon.ru, включая панель "Рекомендуем также".
// @author       Вы
// @match        *://*.ozon.ru/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Функция для клонирования ссылок (удаление обработчиков событий)
    function cloneLinks(container) {
        const links = container.querySelectorAll('a');
        links.forEach(link => {
            const newLink = link.cloneNode(true); // Создаём клон ссылки
            link.replaceWith(newLink); // Заменяем старую ссылку клоном
        });
    }

    // Прерываем обработку событий для средней кнопки мыши
    document.addEventListener('mousedown', event => {
        if (event.button === 1) { // Средний клик
            event.stopImmediatePropagation(); // Блокируем обработчики других скриптов
        }
    }, true);

    // Гарантируем открытие ссылки в новой вкладке
    document.addEventListener('mousedown', event => {
        if (event.button === 1) { // Средний клик
            const link = event.target.closest('a');
            if (link && link.href) {
                window.open(link.href, '_blank'); // Открываем ссылку в новой вкладке
                event.preventDefault(); // Предотвращаем любое другое поведение
            }
        }
    }, true);

    // Клонируем ссылки на странице при загрузке
    cloneLinks(document);

    // Настраиваем наблюдатель за изменениями в DOM
    const observer = new MutationObserver(mutations => {
        mutations.forEach(mutation => {
            if (mutation.type === 'childList') {
                mutation.addedNodes.forEach(node => {
                    if (node.nodeType === 1) { // Проверяем, что это элемент
                        cloneLinks(node); // Клонируем ссылки в добавленных элементах
                    }
                });
            }
        });
    });

    // Наблюдаем за изменениями в теле документа
    observer.observe(document.body, { childList: true, subtree: true });
})();

Этот скрипт устраняет обе проблемы: ссылки в списке товаров и в панели "Рекомендуем также" теперь открываются в новой вкладке фоном, обеспечивая ожидаемое поведение при клике средней кнопкой мыши.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Настройки -> Вкладки -> Переключаться на открываемую ссылку, изображение или медиа
Ответ написан
@nemakar
У меня проблема та же, но браузер другой и не ничего из приведённого выше не помогло. Почистил куки и проблема решилась
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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