(() => {
// Останавливаем предыдущую версию
if (window.__rowSvgDebug) {
window.__rowSvgDebug.stop();
}
const TARGET = 'xmlns="http://www.w3.org/2000/svg"';
function checkRows() {
const rows = document.querySelectorAll('tr');
console.log(`%c[SVG FILTER] Найдено строк <tr>: ${rows.length}`, 'color: cyan');
let found = 0;
let notFound = 0;
rows.forEach((row, index) => {
const html = row.innerHTML;
const hasSvg = html.includes(TARGET);
if (hasSvg) {
found++;
console.log(
`%c[SVG FILTER] Строка #${index + 1}: SVG xmlns НАЙДЕН → ОСТАВЛЯЕМ`,
'color: lime'
);
} else {
notFound++;
console.log(
`%c[SVG FILTER] Строка #${index + 1}: SVG xmlns НЕ НАЙДЕН → МОЖНО УДАЛИТЬ`,
'color: red'
);
// Показываем начало строки для проверки
console.log(
'[SVG FILTER] HTML строки:',
row.outerHTML.substring(0, 500)
);
}
});
console.log(
`%c[SVG FILTER] Итого: найдено=${found}, не найдено=${notFound}`,
'color: yellow'
);
return { rows: rows.length, found, notFound };
}
// Первая проверка
console.log('%c========== SVG FILTER START ==========', 'color: orange');
checkRows();
// Следим за динамически появляющимися строками
const observer = new MutationObserver(() => {
checkRows();
});
observer.observe(document.body, {
childList: true,
subtree: true
});
window.__rowSvgDebug = {
stop() {
observer.disconnect();
delete window.__rowSvgDebug;
console.log(
'%c[SVG FILTER] ОСТАНОВЛЕН',
'color: orange'
);
},
check() {
return checkRows();
}
};
console.log('%c========================================', 'color: orange');
console.log(
'%c[SVG FILTER] Диагностика запущена.',
'color: cyan'
);
console.log(
'[SVG FILTER] Повторная проверка: __rowSvgDebug.check()'
);
console.log(
'[SVG FILTER] Остановка: __rowSvgDebug.stop()'
);
console.log('%c========================================', 'color: orange');
})();