Ответ на пост «Как навсегда убрать "Установить Яндекс Браузер?" — всплывающее окно, которое бесит всех»2
Совет "Как навсегда убрать модалку «Установить Яндекс.Браузер?»" до поразительности похож на пост "Как приехать в Дагестан и выжить" 😁
Совет "Как навсегда убрать модалку «Установить Яндекс.Браузер?»" до поразительности похож на пост "Как приехать в Дагестан и выжить" 😁
Каждый раз, когда ты что-то ищешь в Яндексе, он такой:
Установить Яндекс Браузер?
Он пишет, редактирует, переводит и пересказывает.
(звучит как начало секты, если честно)
Ты жмёшь «нет», идёшь дальше…
А потом оно снова. И снова. И снова.
Я мало говоря немного устал и написал скрипт — один раз поставил, и эти "рекомендации" больше не появляется. Никогда.
Chrome или любой другой браузер
Нажмите на иконку Tampermonkey → «Создать новый скрипт»
Удалите всё, что там есть, и вставьте код выше
Сохраните (Ctrl + S)
Перезагрузите Яндекс - и наслаждайтесь
Сам код скрипта:
// ==UserScript==
// @name Yandex - Удаление окна и затемнения от Яндекс.Браузера
// @namespace https://yandex.ru/
// @VERSION 3.1
// @Description Убирает всплывающее окно Яндекс.Браузера и фон-затемнение на всех страницах Яндекса
// @match *://*.yandex.ru/*
// @GrAnt none
// @run-at document-idle
// ==/UserScript==
(function () {
'use strict';
const removeYandexPopup = () => {
const modal = document.querySelector('.Modal-Content');
const textMatch = modal?.innerText?.toLowerCase().includes('установить яндекс браузер');
if (modal && textMatch) {
modal.remove();
console.log('🛑 Удалено окно Яндекс.Браузера');
}
const backdrop = document.querySelector('div[class*="SplashScreenModal_outerCross"], div[class*="Modal"], div[class*="Modal_visible"]');
if (backdrop) {
backdrop.remove();
console.log('🌫️ Удалён затемняющий фон');
}
document.body.style.overflow = 'auto';
};
removeYandexPopup();
const observer = new MutationObserver(() => removeYandexPopup());
observer.observe(document.body, {
childList: true,
subtree: true,
});
})();
А то они так и останутся жить в “рекомендации по работе с браузером”
Кто-нибудь знает, существует ли расширение для уведомления об ответах? В том же Tampermonkey, например. Надоело каждый раз заходить, проверять ответы.
Сентябрь — это не только начало учебного года, но и время активной подготовки к горячему сезону распродаж. Самое время подключить подписку Пикабу+:
рассказывайте о своих товарах и услугах
добавляйте ссылки
создавайте витрину товаров прямо в профиле
подключайте дополнительное продвижение постов
Пора готовить сани!
При создании инъецируемых скриптов для сайтов, использующих архитектуру SPA (Single Page Application), может возникнуть потребность отслеживать переходы между страницами или перезагрузки элементов. Из-за динамической подгрузки контента через AJAX и Fetch, события DOMContentLoaded или load будут бесполезны.
Для инъецируемых скриптов, хорошим решением будет отслеживать состояние радиомолчания (network idle). Оно наступает, когда все сетевые запросы завершены, и сеть на некоторое время «замолкает». Подобное поведение полезно, если нужно запустить код только после того, как пройдут все запросы или после перехода на другую страницу, чтобы реинициализировать скрипт.
Представьте себе, что вы хотите внедрить кнопки, виджет или другую логику на странице, которая должна запускаться после перехода на новую страницу в SPA-приложении. В этом случае подойдет отслеживание network-idle, чтобы понять, когда контент страницы загрузился.
Инициализация счетчика активных сетевых запросов.
Сниппет отслеживает все сетевые запросы на странице (Fetch и XMLHttpRequest) с помощью PerformanceObserver. Каждый раз, когда начинается новый сетевой запрос, счетчик activeRequests увеличивается.
Обработка завершения запросов.
После завершения запроса activeRequests уменьшается, и проверяется состояние сети. Если активных запросов не осталось, через 500 мс на объекте window генерируется событие network-idle.
Использование события network-idle.
На это событие можно подписаться, чтобы выполнять нужные действия, как только страница завершит все сетевые активности и будет готова для следующей операции.
4. Задержка перед генерацией события.
Задержка в 500 мс добавлена, чтобы устранить "шум" случайных срабатываний и убедиться, что действительно наступило состояние радиомолчания.
Модификации роутов в SPA. Если у вашего SPA-приложения не используются сетевые запросы при изменении маршрутов, дополнительно можно привязаться к событиям history.pushState и popstate.
Очистка обсерверов. Не забывайте отключать обсерверы, чтобы избежать утечек памяти, если ваш скрипт прекращает свое действие при определенных условиях.
Этот сниппет помогает организовать логику на основе сетевых событий в инъецируемых скриптах для приложений с динамическим роутингом, позволяя учитывать состояние “радиомолчания” и гарантируя, инъецируемые скрипты выполняются после прогрузки страницы, а также помогает перезапускать инъецируемый скрипт при переходах между страницами.
Ознакомиться со сниппетом можно на GitHub Gist.
А подобные посты чаще в пишу в Telegram канале, там же и пример проекта, где это применимо.
Мне очень понравился фон на день космонавтики, особенно простота реализации, так что решил оставить себе его на будущее.
А тут его уже и удалили, так что, если кому тоже надо, выложил легкий css для tampermonkey: https://greasyfork.org/ru/scripts/492456-pikabu-звездный-фон
Видео для примера:
Недавно в сети появилось расширение для скачивания торрентов не выходя со Steam - iMSTEAM. Оно попало во многие игровые Telegram-каналы и получило много хайпа. Как по мне, не заслуженно. Оно просто дает ссылки на страницы поиска на трекерах откуда их можно скачать, и не факт что игра есть там. Ссылки есть только на зарубежные трекеры, но это уже как посмотреть, для кого-то это плюс. Так, мне пришла в голову идея сделать свое расширение подобное iMSTEAM и поделиться им со всеми, но чтобы парсинг раздач был на стороне сервера, и дизайн аккуратно вписывался на странице Steam.
Парсинг идет на трекерах: Rutor, RuTracker, NNMClub, BitRU, MegaPeer и Selezen.
Проблемы которые я нашел: достаточно медленный парсер (кеширование хоть как-то это исправляет, поэтому при первом поиске результат придется долго ждать), может находить другие игры, или даже фильмы.
Преимущества: в отличии от зарубежного iMSTEAM, блок со скачиванием находится рядом с кнопками для покупки, ссылки на раздачи открываются в модифицированном окне Steam.
Устанавливаем Tampermonkey для своего браузера. Все ссылки есть на официальном сайте.
Переходим на страницу GreasyFork с моим расширением и нажимаем на кнопку Установить.
Заходим на Steam и наслаждаемся халявными играми.
p.s - в ближайшем обновлении добавлю ссылку на этот пост в окно с раздачами. Добавил
Приложение для расчетов цены в магазине вещь конечно полезная, но при заказе онлайн тоже есть аналогичные проблемы. И сделать отображение цены именно для онлайн магазинов значительно проще, там и цена и вес сразу доступны и не надо ничего распознавать.
Для себя сделал скрипты для tampermonkey которые показывают цену за кг на яндекс-еде и на «впрок».
Tampermonkey это плагин для браузера который позволяет выполнять собственные js-скрипты на сайтах. Нужно установить сначала его, а потом добавить нужные скрипты с гитхаба. https://gist.github.com/beastinman/4a617ad4292b358896ffad550051407c
Ниже примеры как выглядит. Основное неудобство что по этим ценам нет никакой сортировки, но функции свои вполне выполняет.
В чем проблема посмотреть рекламу? Тут вроде сообщество людей с повышенной ответственностью, а посты для безбилетников. Или это другое? Чтобы вы чувствовали, создав площадку, где люди могут смотреть миллионы роликов различного качества (плата даже не берется за загрузку (хранение)), а люди не могут посмотреть 30с рекламы ?