MediaWiki:Common.js: различия между версиями

мНет описания правки
мНет описания правки
Строка 405: Строка 405:
         // Объект для хранения оригинальных стилей
         // Объект для хранения оригинальных стилей
         var originalStyles = {};
         var originalStyles = {};
        // Объект для хранения подсвеченных ячеек
         var highlightedCells = {};
         var highlightedCells = {};


Строка 428: Строка 430:
                     if (highlightedCells[cellId]) return;
                     if (highlightedCells[cellId]) return;
                     highlightedCells[cellId] = true;
                     highlightedCells[cellId] = true;
                    // Подсвечиваем ячейку с rowspan
                    cell.style.backgroundColor = brightenColor(getComputedStyle(cell).backgroundColor);
                    cell.style.color = brightenColor(getComputedStyle(cell).color);


                     // Подсвечиваем все строки, охватываемые rowspan
                     // Подсвечиваем все строки, охватываемые rowspan
Строка 445: Строка 451:
                     }
                     }


                     // Подсвечиваем ячейки в текущем ряду
                     // Подсвечиваем все строки, затрагиваемые ячейками rowspan
                     cells.forEach(function(innerCell) {
                     for (var j = 0; j < topLevelRows.length; j++) {
                        var innerCellId = 'row-' + rowIndex + '-cell-' + cells.indexOf(innerCell);
                        var checkRow = topLevelRows[j];
                        if (!highlightedCells[innerCellId]) {
                        if (checkRow === row) continue; // Пропускаем текущую строку
                            innerCell.style.backgroundColor = brightenColor(getComputedStyle(innerCell).backgroundColor);
 
                            innerCell.style.color = brightenColor(getComputedStyle(innerCell).color);
                        var checkCells = Array.prototype.slice.call(checkRow.querySelectorAll('td, th'));
                            highlightedCells[innerCellId] = true;
                        checkCells.forEach(function(checkCell) {
                         }
                            var checkCellId = 'row-' + j + '-cell-' + checkCells.indexOf(checkCell);
                     });
                            if (highlightedCells[checkCellId]) return;
 
                            var checkCellRowspan = parseInt(checkCell.getAttribute('rowspan'), 10) || 1;
                            if (checkCellRowspan > 1 && checkCell.contains(cell)) {
                                checkCell.style.backgroundColor = brightenColor(getComputedStyle(checkCell).backgroundColor);
                                checkCell.style.color = brightenColor(getComputedStyle(checkCell).color);
                                highlightedCells[checkCellId] = true;
                            }
                         });
                     }
                 });
                 });