From 177c4508853f3b1b7bbb75200c8943cf287d98e6 Mon Sep 17 00:00:00 2001 From: anime Date: Mon, 30 Dec 2024 16:25:42 +0800 Subject: [PATCH] =?UTF-8?q?feat(spoiler=20text=E6=B7=BB=E5=8A=A0=E6=96=87?= =?UTF-8?q?=E6=A1=A3):?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/js/spoilerText.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/public/js/spoilerText.js b/public/js/spoilerText.js index 7a775034..afaf3a0a 100644 --- a/public/js/spoilerText.js +++ b/public/js/spoilerText.js @@ -1,3 +1,9 @@ +/** + * 将Node文本中的指定标签内容转换为带有指定类名的span + * @param node + * @param className + * @param spoilerTag + */ function convertTextToSpoilerSpan(node, className, spoilerTag) { const regex = new RegExp(`${spoilerTag}(.*?)${spoilerTag}`, 'g') const wholeText = node.wholeText @@ -33,6 +39,12 @@ function convertTextToSpoilerSpan(node, className, spoilerTag) { } } +/** + * 收集并处理指定节点下的所有文本节点 + * @param root + * @param className + * @param spoilerTag + */ function processTextNodes(root, className, spoilerTag) { const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null) const waitProcessNodes = [] @@ -45,6 +57,10 @@ function processTextNodes(root, className, spoilerTag) { } } +/** + * 定位到目标处理位置,开始进行文本到spoiler的转换 + * @param spoilerTag + */ function textToSpoiler(spoilerTag) { const intervalID = setInterval(() => { const articleElement = document.querySelector(