油猴插件制作关键字高亮

今天在阿贝云,免费云服务器上制作了油猴插件。关键字高亮。本机电脑也是可以的。
// UserScript
// @name Highlight Keywords
// @namespace http://your-namespace.com
// @version 1.0
// @description Highlight “循环于” and “如果” keywords on a webpage
// @match https://segmentfault.com/*
// @grant none
// /UserScript

(function() {
‘use strict’;

// …

// 创建一个正则表达式来匹配关键字
var keywordRegex = /(循环于|如果)/g;

// 获取页面上的所有文本节点
var textNodes = document.evaluate("//text()", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

for (var i = 0; i < textNodes.snapshotLength; i++) {
    var textNode = textNodes.snapshotItem(i);
    var text = textNode.nodeValue;

    // 使用正则表达式搜索关键字
    var matches = text.match(keywordRegex);

    if (matches) {
        // 创建一个包含高亮标记的新文本节点
        var highlightedText = document.createElement("span");
        highlightedText.className = "highlighted"; // 可以定义样式

        var lastIndex = 0;
        for (var j = 0; j < matches.length; j++) {
            var match = matches[j];
            var index = text.indexOf(match, lastIndex);

            // 将匹配前的文本添加到新节点
            highlightedText.appendChild(document.createTextNode(text.substring(lastIndex, index)));

            // 创建一个包含关键字的高亮节点
            var keywordSpan = document.createElement("span");
            keywordSpan.className = "keyword"; // 可以定义样式
            keywordSpan.textContent = match;

            // 将高亮节点添加到新节点
            highlightedText.appendChild(keywordSpan);

            lastIndex = index + match.length;
        }

        // 将剩余的文本添加到新节点
        highlightedText.appendChild(document.createTextNode(text.substring(lastIndex)));

        // 用新节点替换原始文本节点
        textNode.parentNode.replaceChild(highlightedText, textNode);
    }
}
 // 创建一个包含高亮标记的新文本节点

var highlightedText = document.createElement(“span”);
highlightedText.className = “highlighted”; // 可以定义样式

// …

// 创建一个包含关键字的高亮节点
var keywordSpan = document.createElement(“span”);
keywordSpan.className = “keyword”; // 可以定义样式
keywordSpan.style.backgroundColor = “yellow”; // 指定高亮颜色,这里是黄色背景
keywordSpan.style.color = “black”; // 指定文本颜色,这里是黑色
console.log(“脚本已激活”);
})();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值