您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
按住Alt,选中文字,然后模糊
当前为
// ==UserScript== // @name 打码文字 // @version 0.1 // @description 按住Alt,选中文字,然后模糊 // @author People11 // @match *://*/* // @namespace http://greasyfork.icu/users/1143233 // ==/UserScript== (function() { 'use strict'; function wrapTextWithSpan(textNode, start, end, style) { var span = document.createElement('span'); for (var key in style) { span.style[key] = style[key]; } var range = document.createRange(); range.setStart(textNode, start); range.setEnd(textNode, end); range.surroundContents(span); } function processNode(node, style) { if (node.nodeType === Node.TEXT_NODE) { wrapTextWithSpan(node, 0, node.nodeValue.length, style); } else if (node.nodeType === Node.ELEMENT_NODE) { Array.from(node.childNodes).forEach(function(childNode) { processNode(childNode, style); }); } } document.onmouseup = function(event) { if (event.altKey) { var selection = window.getSelection(); if (!selection.isCollapsed) { var range = selection.getRangeAt(0); var commonAncestorContainer = range.commonAncestorContainer; // Style to be applied var style = { filter: 'blur(5px)', userSelect: 'none' }; if (commonAncestorContainer.nodeType === Node.TEXT_NODE) { wrapTextWithSpan(commonAncestorContainer, range.startOffset, range.endOffset, style); } else if (commonAncestorContainer.nodeType === Node.ELEMENT_NODE) { Array.from(commonAncestorContainer.childNodes).forEach(function(childNode) { if (selection.containsNode(childNode, true)) { processNode(childNode, style); } }); } selection.removeAllRanges(); } } }; })();