// 获取所有文本节点
var textNodes = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, null, false);
// 遍历每个文本节点
while (textNode = textNodes.nextNode()) {
var content = textNode.nodeValue;
// 使用正则表达式匹配指定关键字
var keyword = '指定关键字';
var regexp = new RegExp(keyword, 'gi');
if (content.match(regexp)) {
// 创建一个新的span元素,并设置样式为红色
var span = document.createElement('span');
span.style.color = 'red';
// 替换文本节点的内容为带有红色标记的内容
var replacedContent = content.replace(regexp, function(match) {
return '<span style="color: red;">' + match + '</span>';
});
// 将替换后的内容插入到文本节点前面
var parentElement = textNode.parentNode;
var tempDiv = document.createElement('div');
tempDiv.innerHTML = replacedContent;
while (tempDiv.firstChild) {
parentElement.insertBefore(tempDiv.firstChild, textNode);
}
// 移除原始的文本节点
parentElement.removeChild(textNode);
}
}