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

Нет описания правки
мНет описания правки
Строка 337: Строка 337:
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 существует
Строка 347: Строка 346:
                 return !row.querySelector('table');
                 return !row.querySelector('table');
             });
             });
            // Пропускаем первую строку, если thead нет
            var topLevelRows = thead ? rows : rows.slice(1);


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


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


                 var rowspanCount = cells.filter(function(cell) {
                 var rowspanCount = cells.filter(function(cell) {
Строка 379: Строка 375:
             if (hasTooManyRowspan || hasInvalidRowspan) return;
             if (hasTooManyRowspan || hasInvalidRowspan) return;


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