summary refs log tree commit diff
path: root/assets/js
diff options
context:
space:
mode:
authormayx2025-05-11 16:12:22 +0000
committermayx2025-05-11 16:12:22 +0000
commitac554c55359912bf8928b51d6692f9d8fbd8c6b9 (patch)
tree294e9c4e1fe230c03d296ea05c7ff1c6ae4b19a9 /assets/js
parent97e0ef3c8176e0490030a3a48c0c613eef0af4d3 (diff)
Update 3 files
- /assets/js/main.js
- /assets/js/main_new.js
- /_layouts/default.html
Diffstat (limited to 'assets/js')
-rw-r--r--assets/js/main.js102
-rw-r--r--assets/js/main_new.js78
2 files changed, 88 insertions, 92 deletions
diff --git a/assets/js/main.js b/assets/js/main.js
index 644e2b6..3a17db6 100644
--- a/assets/js/main.js
+++ b/assets/js/main.js
@@ -13,28 +13,19 @@ var talkAPI = BlogAPI + "/ai_chat";
     $(function () { $backToTopFun(); });
 })();
 $(function () {
-    $("div#landlord").mouseenter(function () {
-        $("div.live_ico_box").fadeIn();
-    });
-    $("div#landlord").mouseleave(function () {
-        $("div.live_ico_box").fadeOut();
-    });
-    function showHitS(hits) {
-        $.get(BlogAPI + "/count_click?id=" + hits.id, function (data) {
-            hits.innerHTML = Number(data);
-        });
-    }
     function showHitCount() {
-        var visitors = $(".visitors-index");
-        for (var i = 0; i < visitors.length; i++) {
-            showHitS(visitors[i]);
-        }
-
+        $(".visitors-index").each(function() {
+            var $elem = $(this);
+            $.get(BlogAPI + "/count_click?id=" + $elem.attr('id'), function(data) {
+                $elem.text(Number(data));
+            });
+        });
     }
+    
     function addCount() {
-        var visitors = $(".visitors");
-        $.get(BlogAPI + "/count_click_add?id=" + visitors[0].id, function (data) {
-            visitors[0].innerHTML = Number(data);
+        var $visitor = $(".visitors:first");
+        $.get(BlogAPI + "/count_click_add?id=" + $visitor.attr('id'), function(data) {
+            $visitor.text(Number(data));
         });
     }
     if ($('.visitors').length == 1) {
@@ -44,79 +35,6 @@ $(function () {
     }
 });
 
-$(function () {
-    const urlParams = new URLSearchParams(window.location.search);
-    const keyword = urlParams.get('kw')?.trim();
-
-    if (!keyword) return;
-
-    // 转义正则表达式特殊字符,避免安全问题
-    const escapedKeyword = keyword.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
-    // 创建不区分大小写的正则表达式(全局匹配)
-    const regex = new RegExp(`(${escapedKeyword})`, 'gi');
-
-    // 递归遍历并高亮文本节点
-    const escapeHTML = str => str.replace(/[&<>"']/g, 
-        tag => ({
-            '&': '&amp;',
-            '<': '&lt;',
-            '>': '&gt;',
-            '"': '&quot;',
-            "'": '&#39;'
-        }[tag] || tag));
-    function highlightTextNodes(element) {
-        $(element).contents().each(function () {
-            if (this.nodeType === Node.TEXT_NODE) {
-                const $this = $(this);
-                const text = escapeHTML($this.text());
-
-                // 使用正则替换并保留原始大小写
-                if (regex.test(text)) {
-                    const replaced = text.replace(regex, '<mark>$1</mark>');
-                    $this.replaceWith(replaced);
-                }
-            } else if (
-                this.nodeType === Node.ELEMENT_NODE &&
-                !$(this).is('script, style, noscript, textarea')
-            ) {
-                highlightTextNodes(this);
-            }
-        });
-    }
-
-    $('section').each(function () {
-        highlightTextNodes(this);
-    });
-});
-$(function () {
-    var codeBlocks = document.querySelectorAll('div.highlight');
-
-    codeBlocks.forEach(function (codeBlock) {
-        var copyButton = document.createElement('button');
-        copyButton.className = 'copy';
-        copyButton.type = 'button';
-        copyButton.innerText = '📋';
-
-        codeBlock.append(copyButton);
-
-        copyButton.addEventListener('click', function () {
-            var code = codeBlock.querySelector('pre code').innerText.trim();
-            window.navigator.clipboard.writeText(code)
-                .then(() => {
-                    copyButton.innerText = '✅';
-                })
-                .catch(err => {
-                    copyButton.innerText = '❌';
-                    console.error('Failed to copy:', err);
-                });
-
-            setTimeout(function () {
-                copyButton.innerText = '📋';
-            }, 1500);
-        });
-    });
-});
-
 today = new Date();
 timeold = (today.getTime() - lastUpdated.getTime());
 secondsold = Math.floor(timeold / 1000);
diff --git a/assets/js/main_new.js b/assets/js/main_new.js
new file mode 100644
index 0000000..fd0170f
--- /dev/null
+++ b/assets/js/main_new.js
@@ -0,0 +1,78 @@
+$(function () {
+    $("div#landlord").mouseenter(function () {
+        $("div.live_ico_box").fadeIn();
+    });
+    $("div#landlord").mouseleave(function () {
+        $("div.live_ico_box").fadeOut();
+    });
+    
+    const urlParams = new URLSearchParams(window.location.search);
+    const keyword = urlParams.get('kw')?.trim();
+
+    if (!keyword) return;
+
+    // 转义正则表达式特殊字符,避免安全问题
+    const escapedKeyword = keyword.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
+    // 创建不区分大小写的正则表达式(全局匹配)
+    const regex = new RegExp(`(${escapedKeyword})`, 'gi');
+
+    // 递归遍历并高亮文本节点
+    const escapeHTML = str => str.replace(/[&<>"']/g, 
+        tag => ({
+            '&': '&amp;',
+            '<': '&lt;',
+            '>': '&gt;',
+            '"': '&quot;',
+            "'": '&#39;'
+        }[tag] || tag));
+    function highlightTextNodes(element) {
+        $(element).contents().each(function () {
+            if (this.nodeType === Node.TEXT_NODE) {
+                const $this = $(this);
+                const text = escapeHTML($this.text());
+
+                // 使用正则替换并保留原始大小写
+                if (regex.test(text)) {
+                    const replaced = text.replace(regex, '<mark>$1</mark>');
+                    $this.replaceWith(replaced);
+                }
+            } else if (
+                this.nodeType === Node.ELEMENT_NODE &&
+                !$(this).is('script, style, noscript, textarea')
+            ) {
+                highlightTextNodes(this);
+            }
+        });
+    }
+
+    $('section').each(function () {
+        highlightTextNodes(this);
+    });
+
+    var codeBlocks = document.querySelectorAll('div.highlight');
+
+    codeBlocks.forEach(function (codeBlock) {
+        var copyButton = document.createElement('button');
+        copyButton.className = 'copy';
+        copyButton.type = 'button';
+        copyButton.innerText = '📋';
+
+        codeBlock.append(copyButton);
+
+        copyButton.addEventListener('click', function () {
+            var code = codeBlock.querySelector('pre code').innerText.trim();
+            window.navigator.clipboard.writeText(code)
+                .then(() => {
+                    copyButton.innerText = '✅';
+                })
+                .catch(err => {
+                    copyButton.innerText = '❌';
+                    console.error('Failed to copy:', err);
+                });
+
+            setTimeout(function () {
+                copyButton.innerText = '📋';
+            }, 1500);
+        });
+    });
+});
\ No newline at end of file