(() => {
if (window.__svgRowFilter) {
console.log('Скрипт уже запущен.');
return;
}
let stopped = false;
const checkRows = () => {
if (stopped) return;
document.querySelectorAll('tr').forEach(row => {
const hasSvg = row.querySelector(
'svg[xmlns="http://www.w3.org/2000/svg"]'
);
if (!hasSvg) {
row.remove();
}
});
};
// Проверяем уже существующие строки
checkRows();
// Следим за появлением новых строк
const observer = new MutationObserver(() => {
checkRows();
});
observer.observe(document.body, {
childList: true,
subtree: true
});
window.__svgRowFilter = {
stop: () => {
stopped = true;
observer.disconnect();
delete window.__svgRowFilter;
console.log('Скрипт остановлен.');
}
};
console.log('Фильтр запущен. Для остановки введи: stop');
// Перехватываем ввод команды stop через консоль
const originalLog = console.log;
window.stopSvgFilter = window.__svgRowFilter.stop;
// Проверяем команды через периодический опрос
const commandInterval = setInterval(() => {
if (window.__svgRowFilter === undefined) {
clearInterval(commandInterval);
}
}, 500);
})();