Dantes (обсуждение | вклад) (Полностью удалено содержимое страницы) Метка: очистка |
Dantes (обсуждение | вклад) Нет описания правки Метка: отменено |
||
| Строка 1: | Строка 1: | ||
// Словарь слов и их цветов | |||
var wordColors = { | |||
"Клише": "#FF0000", // красный | |||
"властью": "#00FF00", // зелёный | |||
"ответственность": "#0000FF", // синий | |||
"Стандартные Рабочие Процедуры": "#FFA500", // оранжевый | |||
"ядреный диск": "#800080", // фиолетовый | |||
"станции": "#008080", // бирюзовый | |||
"ГСБ": "#FFC0CB", // розовый | |||
"диск": "#A52A2A", // коричневый | |||
"СРП/КЗ": "#FFFF00", // жёлтый | |||
"банановая кожурка": "#00FFFF" // голубой | |||
}; | |||
function colorWords() { | |||
// Получаем все текстовые узлы в body | |||
function walk(node) { | |||
var child, next; | |||
switch (node.nodeType) { | |||
case 1: // Element | |||
case 9: // Document | |||
case 11: // Document fragment | |||
child = node.firstChild; | |||
while (child) { | |||
next = child.nextSibling; | |||
walk(child); | |||
child = next; | |||
} | |||
break; | |||
case 3: // Text node | |||
replaceText(node); | |||
break; | |||
} | |||
} | |||
function replaceText(textNode) { | |||
var parent = textNode.parentNode; | |||
var text = textNode.nodeValue; | |||
Object.keys(wordColors).forEach(function(word) { | |||
// Экранируем специальные символы для регулярки | |||
var escapedWord = word.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); | |||
var regex = new RegExp(escapedWord, 'g'); | |||
if (regex.test(text)) { | |||
var span = document.createElement('span'); | |||
span.innerHTML = text.replace(regex, function(match) { | |||
return '<span style="color:' + wordColors[word] + '">' + match + '</span>'; | |||
}); | |||
parent.replaceChild(span, textNode); | |||
} | |||
}); | |||
} | |||
walk(document.body); | |||
} | |||
// Запускаем после полной загрузки страницы | |||
window.addEventListener('load', colorWords); | |||
Версия от 22:10, 16 января 2026
// Словарь слов и их цветов
var wordColors = {
"Клише": "#FF0000", // красный
"властью": "#00FF00", // зелёный
"ответственность": "#0000FF", // синий
"Стандартные Рабочие Процедуры": "#FFA500", // оранжевый
"ядреный диск": "#800080", // фиолетовый
"станции": "#008080", // бирюзовый
"ГСБ": "#FFC0CB", // розовый
"диск": "#A52A2A", // коричневый
"СРП/КЗ": "#FFFF00", // жёлтый
"банановая кожурка": "#00FFFF" // голубой
};
function colorWords() {
// Получаем все текстовые узлы в body
function walk(node) {
var child, next;
switch (node.nodeType) {
case 1: // Element
case 9: // Document
case 11: // Document fragment
child = node.firstChild;
while (child) {
next = child.nextSibling;
walk(child);
child = next;
}
break;
case 3: // Text node
replaceText(node);
break;
}
}
function replaceText(textNode) {
var parent = textNode.parentNode;
var text = textNode.nodeValue;
Object.keys(wordColors).forEach(function(word) {
// Экранируем специальные символы для регулярки
var escapedWord = word.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
var regex = new RegExp(escapedWord, 'g');
if (regex.test(text)) {
var span = document.createElement('span');
span.innerHTML = text.replace(regex, function(match) {
return '<span style="color:' + wordColors[word] + '">' + match + '</span>';
});
parent.replaceChild(span, textNode);
}
});
}
walk(document.body);
}
// Запускаем после полной загрузки страницы
window.addEventListener('load', colorWords);