// ==UserScript== // @name Убрать 3-ий блок новостей в просмотре писем // @namespace https://github.com/le91 // @version 1.0.1 // @description try to take over the world! // @author You // @match https://e.mail.ru/* // @icon https://www.google.com/s2/favicons?sz=64&domain=mail.ru // @grant none // ==/UserScript== (function() { 'use strict'; function startRemove(){ var main = document.querySelector("#app-canvas > div > div.application-mail > div.application-mail__overlay > div > div.application-mail__layout.application-mail__layout_main > span") main.children[2].remove(); console.log('блок уже удален первый эпат') // Находим элемент const targetElement = document.querySelector(".ReactVirtualized__Grid__innerScrollContainer"); // Получаем все div элементы внутри него const divElements = targetElement.querySelectorAll('div'); let firstDivHeight = ''; // Проходимся по каждому div элементу divElements.forEach(divElement => { // Проверяем, если у div элемента высота больше 0px if (divElement.style.height && parseInt(divElement.style.height) > 0) { if (firstDivHeight === '') { firstDivHeight = divElement.style.height; } // Удаляем все div элементы до данного элемента let previousElement = divElement.previousElementSibling; while (previousElement && previousElement.tagName === 'DIV' && firstDivHeight != '') { const toRemove = previousElement; previousElement = previousElement.previousElementSibling; // toRemove.remove(); var cssStyle = document.querySelector(".ReactVirtualized__Grid__innerScrollContainer").getAttribute("style") cssStyle = cssStyle + "margin-top: -"+firstDivHeight+";" document.querySelector(".ReactVirtualized__Grid__innerScrollContainer").setAttribute("style",cssStyle) } // Выходим из цикла после удаления return; } }); } // удалить новости с правой части экрана setTimeout(function() { try { startRemove() } catch { console.log('блок уже удален первый эпат') } }, 3000); setTimeout(function() { try { startRemove() } catch { console.log('блок уже удален второй эпат') } }, 13000); })();