summary refs log tree commit diff
diff options
context:
space:
mode:
authormayx2025-05-11 16:12:22 +0000
committermayx2025-05-11 16:12:22 +0000
commitac554c55359912bf8928b51d6692f9d8fbd8c6b9 (patch)
tree294e9c4e1fe230c03d296ea05c7ff1c6ae4b19a9
parent97e0ef3c8176e0490030a3a48c0c613eef0af4d3 (diff)
Update 3 files
- /assets/js/main.js
- /assets/js/main_new.js
- /_layouts/default.html
-rw-r--r--_layouts/default.html5
-rw-r--r--assets/js/main.js102
-rw-r--r--assets/js/main_new.js78
3 files changed, 91 insertions, 94 deletions
diff --git a/_layouts/default.html b/_layouts/default.html
index 37f81c0..b2691a0 100644
--- a/_layouts/default.html
+++ b/_layouts/default.html
@@ -20,8 +20,8 @@
     <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
   <![endif]-->
 
-  <!--[if !IE]> -->
   <script src="/assets/js/jquery.min.js"></script>
+  <!--[if !IE]> -->
   {% if site.google_analytics %}
   <!-- Global site tag (gtag.js) - Google Analytics -->
   <script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
@@ -141,8 +141,9 @@
     </footer>
   </div>
   <script src="{{ "/assets/js/scale.fix.js" | relative_url }}"></script>
-  <!--[if !IE]> -->
   <script src="/assets/js/main.js"></script>
+  <!--[if !IE]> -->
+  <script src="/assets/js/main_new.js"></script>
   <script src="/Live2dHistoire/live2d/js/live2d.js"></script>
   <script src="/Live2dHistoire/live2d/js/message.js"></script>
   <!-- <![endif]-->
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