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

мНет описания правки
мНет описания правки
Строка 333: Строка 333:
function applyHighlighting() {
function applyHighlighting() {
     var tables = document.querySelectorAll('.wikitable:not(.no-highlight-table)');
     var tables = document.querySelectorAll('.wikitable:not(.no-highlight-table)');
 
   
     Array.prototype.forEach.call(tables, function(table) {
     Array.prototype.forEach.call(tables, function(table) {
         var tbody = table.querySelector('tbody');
         var tbody = table.querySelector('tbody');
        var thead = table.querySelector('thead');


         // Проверяем, что tbody существует
         // Проверяем, что tbody существует
Строка 342: Строка 343:
                 return !row.querySelector('table');
                 return !row.querySelector('table');
             });
             });
            // Пропускаем первые две строки, если thead существует
            var topLevelRows = thead ? rows.slice(2) : rows.slice(1);


             var hasInvalidRowspan = false;
             var hasInvalidRowspan = false;
             var hasTooManyRowspan = false;
             var hasTooManyRowspan = false;


             rows.forEach(function(row) {
             topLevelRows.forEach(function(row) {
                 var cells = Array.prototype.slice.call(row.querySelectorAll('td, th'));
                 var cells = Array.prototype.slice.call(row.querySelectorAll('td, th'));


Строка 371: Строка 375:
             if (hasTooManyRowspan || hasInvalidRowspan) return;
             if (hasTooManyRowspan || hasInvalidRowspan) return;


             rows.forEach(function(row) {
             topLevelRows.forEach(function(row) {
                 var cells = Array.prototype.slice.call(row.querySelectorAll('td, th'));
                 var cells = Array.prototype.slice.call(row.querySelectorAll('td, th'));
                 var originalStyles = cells.map(function(cell) {
                 var originalStyles = cells.map(function(cell) {