diff --git a/argontheme.js b/argontheme.js index e1a0abc..93bd6be 100644 --- a/argontheme.js +++ b/argontheme.js @@ -2,8 +2,8 @@ * Argon 主题核心 JavaScript */ -// ========== 兼容性修�?========== -// 确保 Prism �?autoloader 存在 +// ========== 兼容性修复 ========== +// 确保 Prism 和 autoloader 存在 if (typeof window.Prism === 'undefined') { window.Prism = { highlightAll: function() {}, @@ -30,7 +30,7 @@ if (typeof window.Zoomify === 'undefined') { // 确保 jQuery 插件存在 if (typeof jQuery !== 'undefined') { (function($) { - // 确保 easing 函数存在(防止其他插件覆�?jQuery 后丢失) + // 确保 easing 函数存在(防止其他插件覆盖 jQuery 后丢失) if (typeof $.easing === 'undefined') { $.easing = {}; } @@ -94,16 +94,16 @@ if (typeof jQuery !== 'undefined') { // ========================================================================== // 性能优化模块引入 // ========================================================================== -// 注意:argon-performance.js 需要在此文件之前加�? -// �?functions.php 中通过 wp_enqueue_script 确保加载顺序 +// 注意:argon-performance.js 需要在此文件之前加载 +// 在 functions.php 中通过 wp_enqueue_script 确保加载顺序 // // 提供的优化功能: // - ArgonDOMCache: DOM 元素缓存系统 -// - ArgonEventManager: 事件节流和防�? +// - ArgonEventManager: 事件节流和防抖 // - ArgonResourceLoader: 资源按需加载 -// - ArgonRenderOptimizer: 渲染优化�?GPU 加�? -// - ArgonMemoryManager: 内存管理和清�? -// - ArgonPerformanceMonitor: 性能监控和分�? +// - ArgonRenderOptimizer: 渲染优化和 GPU 加速 +// - ArgonMemoryManager: 内存管理和清理 +// - ArgonPerformanceMonitor: 性能监控和分析 // ========================================================================== // ========== 原有代码 ========== @@ -115,7 +115,7 @@ if (typeof(argonConfig.wp_path) == "undefined"){ } // ========================================================================== -// 性能优化模块实例(全局变量�? +// 性能优化模块实例(全局变量) // ========================================================================== var argonDOMCache = null; // DOM 缓存实例 var argonEventManager = null; // 事件管理实例 @@ -125,7 +125,7 @@ var argonMemoryManager = null; // 内存管理实例 var argonPerformanceMonitor = null; // 性能监控实例 // ========================================================================== -// 调试控制台(�?argon-performance.js 引入�? +// 调试控制台(由 argon-performance.js 引入) // ========================================================================== // 如果 ArgonDebug 未定义,创建一个简单的替代实现 if (typeof ArgonDebug === 'undefined') { @@ -174,62 +174,62 @@ translation['en_US'] = { "恢复博客默认": "Set To Default", "评论内容不能为空": "Comment content cannot be empty", "昵称不能为空": "Name cannot be empty", - "邮箱�?QQ 号格式错�?: "Incorrect email or QQ format", + "邮箱或QQ号格式错误": "Incorrect email or QQ format", "邮箱格式错误": "Incorrect email format", - "网站格式错误 (不是 http(s):// 开�?": "Website URL format error", + "网站格式错误 (不是 http(s):// 开头)": "Website URL format error", "验证码未输入": "CAPTCHA cannot be empty", - "验证码格式错�?: "Incorrect CAPTCHA format", + "验证码格式错误": "Incorrect CAPTCHA format", "请完成验证码验证": "Please complete CAPTCHA verification", "评论格式错误": "Comment format error", "发送中": "Sending", - "正在发�?: "Sending", + "正在发送": "Sending", "评论正在发送中...": "Comment is sending...", - "发�?: "Send", - "评论发送失�?: "Comment failed", - "发送成�?: "Success", - "您的评论已发�?: "Your comment has been sent", + "发送": "Send", + "评论发送失败": "Comment failed", + "发送成功": "Success", + "您的评论已发送": "Your comment has been sent", "评论": "Comments", "未知原因": "Unknown Error", - "编辑�?: "Editing", + "编辑中": "Editing", "正在编辑": "Editing", - "评论正在编辑�?..": "Comment is being edited...", + "评论正在编辑中...": "Comment is being edited...", "编辑": "Edit", "评论编辑失败": "Comment editing failed", - "已编�?: "Edited", + "已编辑": "Edited", "编辑成功": "Success", - "您的评论已编�?: "Your comment has been edited", + "您的评论已编辑": "Your comment has been edited", "评论 #": "Comment #", - "的编辑记�?: "- Edit History", + "的编辑记录": "- Edit History", "加载失败": "Failed to load", "展开": "Show", - "没有更多�?: "No more comments", + "没有更多了": "No more comments", "找不到该 Repo": "Can't find the repository", "获取 Repo 信息失败": "Failed to get repository information", "点赞失败": "Vote failed", "Hitokoto 获取失败": "Failed to get Hitokoto", "复制成功": "Copied", - "代码已复制到剪贴�?: "Code has been copied to the clipboard", + "代码已复制到剪贴板": "Code has been copied to the clipboard", "复制失败": "Failed", - "请手动复制代�?: "Please copy the code manually", + "请手动复制代码": "Please copy the code manually", "刚刚": "Now", - "分钟�?: "minutes ago", - "小时�?: "hours ago", + "分钟前": "minutes ago", + "小时前": "hours ago", "昨天": "Yesterday", "前天": "The day before yesterday", "天前": "days ago", "隐藏行号": "Hide Line Numbers", "显示行号": "Show Line Numbers", - "开启折�?: "Enable Break Line", + "开启折行": "Enable Break Line", "关闭折行": "Disable Break Line", "复制": "Copy", "全屏": "Fullscreen", - "退出全�?: "Exit Fullscreen", + "退出全屏": "Exit Fullscreen", "置顶评论": "Pin Comment", "取消置顶评论": "Unpin Comment", - "是否要取消置顶评�?#": "Do you want to unpin the comment #", - "是否要置顶评�?#": "Do you want to pin the comment #", + "是否要取消置顶评论 #": "Do you want to unpin the comment #", + "是否要置顶评论 #": "Do you want to pin the comment #", "确认": "Confirm", - "取消": "取消", + "取消": "Cancel", "置顶": "Pin", "取消置顶": "Unpin", "置顶成功": "Pinned", @@ -245,55 +245,55 @@ translation['ru_RU'] = { "恢复博客默认": "Восстановить по умолчанию", "评论内容不能为空": "Содержимое комментария не может быть пустым", "昵称不能为空": "Имя не может быть пустым", - "邮箱�?QQ 号格式错�?: "Неверный формат электронной почты или QQ", + "邮箱或QQ号格式错误": "Неверный формат электронной почты или QQ", "邮箱格式错误": "Неправильный формат электронной почты", - "网站格式错误 (不是 http(s):// 开�?": "Сайт ошибка формата URL-адреса ", + "网站格式错误 (不是 http(s):// 开头)": "Сайт ошибка формата URL-адреса ", "验证码未输入": "Вы не решили капчу", - "验证码格式错�?: "Ошибка проверки капчи", + "验证码格式错误": "Ошибка проверки капчи", "评论格式错误": "Неправильный формат комментария", "发送中": "Отправка", - "正在发�?: "Отправка", + "正在发送": "Отправка", "评论正在发送中...": "Комментарий отправляется...", - "发�?: "Отправить", - "评论发送失�?: "Не удалось отправить комментарий", - "发送成�?: "Комментарий отправлен", - "您的评论已发�?: "Ваш комментарий был отправлен", + "发送": "Отправить", + "评论发送失败": "Не удалось отправить комментарий", + "发送成功": "Комментарий отправлен", + "您的评论已发送": "Ваш комментарий был отправлен", "评论": "Комментарии", "未知原因": "Неизвестная ошибка", - "编辑�?: "Редактируется", + "编辑中": "Редактируется", "正在编辑": "Редактируется", - "评论正在编辑�?..": "Комментарий редактируется", + "评论正在编辑中...": "Комментарий редактируется", "编辑": "Редактировать", "评论编辑失败": "Не удалось отредактировать комментарий", - "已编�?: "Изменено", + "已编辑": "Изменено", "编辑成功": "Успешно", - "您的评论已编�?: "Ваш комментарий был изменен", + "您的评论已编辑": "Ваш комментарий был изменен", "评论 #": "Комментарий #", - "的编辑记�?: "- История изменений", + "的编辑记录": "- История изменений", "加载失败": "Ошибка загрузки", "展开": "Показать", - "没有更多�?: "Комментариев больше нет", + "没有更多了": "Комментариев больше нет", "找不到该 Repo": "Невозможно найти репозиторий", "获取 Repo 信息失败": "Неудалось получить информацию репозитория", "点赞失败": "Ошибка голосования", "Hitokoto 获取失败": "Проблемы с вызовом Hitokoto", "复制成功": "Скопировано", - "代码已复制到剪贴�?: "Код скопирован в буфер обмена", + "代码已复制到剪贴板": "Код скопирован в буфер обмена", "复制失败": "Неудалось", - "请手动复制代�?: "Скопируйте код вручную", + "请手动复制代码": "Скопируйте код вручную", "刚刚": "Сейчас", - "分钟�?: "минут назад", - "小时�?: "часов назад", + "分钟前": "минут назад", + "小时前": "часов назад", "昨天": "Вчера", "前天": "Позавчера", "天前": "дней назад", "隐藏行号": "Скрыть номера строк", "显示行号": "Показать номера строк", - "开启折�?: "Включить перенос строк", + "开启折行": "Включить перенос строк", "关闭折行": "Выключить перенос строк", "复制": "Скопировать", "全屏": "Полноэкранный режим", - "退出全�?: "Выход из полноэкранного режима", + "退出全屏": "Выход из полноэкранного режима", }; translation['zh_TW'] = { "确定": "確定", @@ -301,55 +301,55 @@ translation['zh_TW'] = { "恢复博客默认": "恢復博客默認", "评论内容不能为空": "評論內容不能為空", "昵称不能为空": "昵稱不能為空", - "邮箱�?QQ 号格式错�?: "郵箱�?QQ 號格式錯�?, + "邮箱或QQ号格式错误": "郵箱或QQ號格式錯誤", "邮箱格式错误": "郵箱格式錯誤", - "网站格式错误 (不是 http(s):// 开�?": "網站格式錯誤 (不是 http(s):// 開頭)", + "网站格式错误 (不是 http(s):// 开头)": "網站格式錯誤 (不是 http(s):// 開頭)", "验证码未输入": "驗證碼未輸入", - "验证码格式错�?: "驗證碼格式錯�?, + "验证码格式错误": "驗證碼格式錯誤", "评论格式错误": "評論格式錯誤", "发送中": "發送中", - "正在发�?: "正在發�?, + "正在发送": "正在發送", "评论正在发送中...": "評論正在發送中...", - "发�?: "發�?, - "评论发送失�?: "評論發送失�?, - "发送成�?: "發送成�?, - "您的评论已发�?: "您的評論已發�?, + "发送": "發送", + "评论发送失败": "評論發送失敗", + "发送成功": "發送成功", + "您的评论已发送": "您的評論已發送", "评论": "評論", "未知原因": "未知原因", - "编辑�?: "編輯�?, + "编辑中": "編輯中", "正在编辑": "正在編輯", - "评论正在编辑�?..": "評論正在編輯�?..", + "评论正在编辑中...": "評論正在編輯中...", "编辑": "編輯", "评论编辑失败": "評論編輯失敗", - "已编�?: "已編�?, + "已编辑": "已編輯", "编辑成功": "編輯成功", - "您的评论已编�?: "您的評論已編�?, + "您的评论已编辑": "您的評論已編輯", "评论 #": "評論 #", - "的编辑记�?: "的編輯記�?, + "的编辑记录": "的編輯記錄", "加载失败": "加載失敗", "展开": "展開", - "没有更多�?: "沒有更多�?, + "没有更多了": "沒有更多了", "找不到该 Repo": "找不到該 Repo", "获取 Repo 信息失败": "獲取 Repo 信息失敗", "点赞失败": "點贊失敗", "Hitokoto 获取失败": "Hitokoto 獲取失敗", "复制成功": "復制成功", - "代码已复制到剪贴�?: "代碼已復制到剪貼�?, + "代码已复制到剪贴板": "代碼已復制到剪貼板", "复制失败": "復制失敗", - "请手动复制代�?: "請手動復制代�?, + "请手动复制代码": "請手動復制代碼", "刚刚": "剛剛", - "分钟�?: "分鐘�?, - "小时�?: "小時�?, + "分钟前": "分鐘前", + "小时前": "小時前", "昨天": "昨天", "前天": "前天", "天前": "天前", "隐藏行号": "隱藏行號", "显示行号": "顯示行號", - "开启折�?: "開啟折行", + "开启折行": "開啟折行", "关闭折行": "關閉折行", "复制": "復制", "全屏": "全屏", - "退出全�?: "退出全�? + "退出全屏": "退出全屏", }; function __(text){ let lang = argonConfig.language; @@ -362,7 +362,7 @@ function __(text){ return translation[lang][text]; } -/*根据滚动高度改变顶栏透明�?/ +/*根据滚动高度改变顶栏透明度 */ !function(){ let toolbar = document.getElementById("navbar-main"); let $bannerContainer = $("#banner_container"); @@ -467,7 +467,7 @@ $(document).on("click" , "#navbar_search_input_container" , function(){ $("#navbar_search_input").focus(); }); $(document).on("blur" , "#navbar_search_input_container" , function(){ - // 如果有文字则保持has-text�? + // 如果有文字则保持has-text类 if ($("#navbar_search_input").val().trim() !== "") { $(this).addClass("has-text"); } else { @@ -475,7 +475,7 @@ $(document).on("blur" , "#navbar_search_input_container" , function(){ } $(this).removeClass("open"); }); -// 监听输入变化来切换has-text�? +// 监听输入变化来切换has-text类 $(document).on("input" , "#navbar_search_input" , function(){ var container = $("#navbar_search_input_container"); if ($(this).val().trim() !== "") { @@ -533,7 +533,7 @@ $(document).on("keydown" , "#leftbar_search_input" , function(e){ $("html").removeClass("leftbar-opened"); searchPosts(word); }); -/*搜索过滤�?/ +/*搜索过滤器*/ $(document).on("change" , ".search-filter" , function(e){ if (pjaxLoading){ $(this).prop("checked", !$(this).prop("checked")); @@ -592,21 +592,21 @@ $(document).on("change" , ".search-filter" , function(e){ function changeLeftbarStickyStatus(){ let scrollTop = document.documentElement.scrollTop || document.body.scrollTop; if( part1OffsetTop + part1OuterHeight + 10 - scrollTop <= (argonConfig.headroom != "absolute" ? 90 : 18) ){ - //滚动条在页面中间浮动状�? + //滚动条在页面中间浮动状态 leftbarPart2.classList.add('sticky'); if (leftbarPart3) { leftbarPart3.classList.add('sticky'); - // 计算可用空间并分配给 part2 �?part3 + // 计算可用空间并分配给 part2 和 part3 let viewportHeight = window.innerHeight; let topOffset = argonConfig.headroom !== 'absolute' ? 90 : 20; let availableHeight = viewportHeight - topOffset - 20; // 20px 底部边距 - // 获取 part3 的自然高度(不受限制时的高度�? + // 获取 part3 的自然高度(不受限制时的高度) leftbarPart3.style.maxHeight = 'none'; let part3NaturalHeight = leftbarPart3.scrollHeight; leftbarPart3.style.maxHeight = ''; - // 最小高度限�? + // 最小高度限制 let minPart2Height = 150; let minPart3Height = 100; @@ -617,7 +617,7 @@ $(document).on("change" , ".search-filter" , function(e){ part3MaxHeight = part3NaturalHeight; part2Height = availableHeight - part3NaturalHeight - 10; } else { - // 需要按比例分配,part2 �?60%,part3 �?40% + // 需要按比例分配,part2 占 60%,part3 占 40% part2Height = Math.max(minPart2Height, availableHeight * 0.6); part3MaxHeight = Math.max(minPart3Height, availableHeight - part2Height - 10); } @@ -627,11 +627,11 @@ $(document).on("change" , ".search-filter" , function(e){ document.documentElement.style.setProperty('--leftbar-part3-max-height', part3MaxHeight + 'px'); } }else{ - //滚动条在顶部 不浮动状�? + //滚动条在顶部 不浮动状态 leftbarPart2.classList.remove('sticky'); if (leftbarPart3) leftbarPart3.classList.remove('sticky'); } - if( part1OffsetTop + part1OuterHeight + 10 - scrollTop <= 20 ){//侧栏下部分是否可以随 Headroom 一起向上移�? + if( part1OffsetTop + part1OuterHeight + 10 - scrollTop <= 20 ){//侧栏下部分是否可以随 Headroom 一起向上移动 document.body.classList.add('leftbar-can-headroom'); }else{ document.body.classList.remove('leftbar-can-headroom'); @@ -784,9 +784,9 @@ if (argonConfig.waterflow_columns != "1") { }); }(); -/*浮动按钮栏相�?(回顶�?*/ +/*浮动按钮栏相关(回顶部)*/ !function(){ - // 确保 DOM �?jQuery 已加�? + // 确保 DOM 和 jQuery 已加载 if (typeof jQuery === 'undefined') { setTimeout(arguments.callee, 50); return; @@ -848,7 +848,7 @@ if (argonConfig.waterflow_columns != "1") { $("#post_comment_content").focus(); }, 150); } else { - // 已展开或无切换按钮:直接滚动到评论�? + // 已展开或无切换按钮:直接滚动到评论区 $("body,html").stop().animate({ scrollTop: postCommentArea.offset().top - 80 }, 600); @@ -917,14 +917,14 @@ if (argonConfig.waterflow_columns != "1") { $("#blog_setting_filters .blog-setting-filter-btn[filter-name='" + name + "']").addClass("active"); localStorage['Argon_Filter'] = name; } - // 滤镜设置已在 header.php 中预加载,此处只需设置按钮状�? + // 滤镜设置已在 header.php 中预加载,此处只需设置按钮状态 let currentFilter = localStorage['Argon_Filter'] || 'off'; $("#blog_setting_filters .blog-setting-filter-btn[filter-name='" + currentFilter + "']").addClass("active"); $(".blog-setting-filter-btn").on("click" , function(){ setBlogFilter(this.getAttribute("filter-name")); }); - //UI 样式切换 (玻璃拟�?新拟�? + //UI 样式切换 (玻璃拟态/新拟态) function setUIStyle(style){ if (style == undefined || style == ""){ style = "default"; @@ -937,7 +937,7 @@ if (argonConfig.waterflow_columns != "1") { $(".blog-setting-style-btn[style-name='" + style + "']").addClass("active"); localStorage['Argon_UI_Style'] = style; } - // UI 样式设置已在 header.php 中预加载,此处只需设置按钮状�? + // UI 样式设置已在 header.php 中预加载,此处只需设置按钮状态 let currentUIStyle = localStorage['Argon_UI_Style'] || 'default'; $(".blog-setting-style-btn[style-name='" + currentUIStyle + "']").addClass("active"); $(".blog-setting-style-btn").on("click" , function(){ @@ -1022,13 +1022,13 @@ if (argonConfig.waterflow_columns != "1") { }); }(); -/*评论�?& 发送评�?/ +/*评论区 & 发送评论*/ !function(){ //回复评论 let replying = false , replyID = 0; /** - * 显示回复�? + * 显示回复框 * @param {number} commentID - 评论ID */ function reply(commentID){ @@ -1052,7 +1052,7 @@ if (argonConfig.waterflow_columns != "1") { $("#post_comment").addClass("post-comment-force-privatemode-off"); } - // 滚动到评论框(使用原�?scrollTo 避免 jQuery easing 依赖问题�? + // 滚动到评论框(使用原生 scrollTo 避免 jQuery easing 依赖问题) let postComment = $('#post_comment'); if (postComment.length > 0 && postComment.offset()) { let targetTop = postComment.offset().top - 100; @@ -1062,11 +1062,11 @@ if (argonConfig.waterflow_columns != "1") { }); } - // 使用 CSS 动画显示回复�? + // 使用 CSS 动画显示回复框 let replyInfo = $('#post_comment_reply_info'); if (replyInfo.length > 0) { replyInfo.removeClass('reply-leaving').css('display', 'block'); - // 触发重排以确保动画生�? + // 触发重排以确保动画生效 replyInfo[0].offsetHeight; replyInfo.addClass('reply-entering'); } @@ -1165,10 +1165,10 @@ if (argonConfig.waterflow_columns != "1") { $(document).on("mouseleave", ".comment-parent-info", function(){ $("#comment-" + this.getAttribute("data-parent-id")).removeClass("highlight"); }); - //切换评论置顶状�? + //切换评论置顶状态 function toogleCommentPin(commentID, pinned){ $("#comment_pin_comfirm_dialog .modal-title").html(pinned ? __("取消置顶评论") : __("置顶评论")); - $("#comment_pin_comfirm_dialog .modal-body").html(pinned ? __("是否要取消置顶评�?#") + commentID + "?" : __("是否要置顶评�?#") + commentID + "?"); + $("#comment_pin_comfirm_dialog .modal-body").html(pinned ? __("是否要取消置顶评论 #") + commentID + "?" : __("是否要置顶评论 #") + commentID + "?"); $("#comment_pin_comfirm_dialog .btn-comfirm").html(__("确认")).attr("disabled", false); $("#comment_pin_comfirm_dialog .btn-dismiss").html(__("取消")).attr("disabled", false); $("#comment_pin_comfirm_dialog .btn-comfirm").off("click").on("click", function(){ @@ -1244,7 +1244,7 @@ if (argonConfig.waterflow_columns != "1") { } - //显示/隐藏额外输入�?(评论者网�? + //显示/隐藏额外输入框(评论者网址) $(document).on("click" , "#post_comment_toggle_extra_input" , function(){ $("#post_comment").toggleClass("show-extra-input"); if ($("#post_comment").hasClass("show-extra-input")){ @@ -1254,7 +1254,7 @@ if (argonConfig.waterflow_columns != "1") { } }); - //输入框细�? + //输入框细节 $(document).on("change input keydown keyup propertychange" , "#post_comment_content" , function(){ $("#post_comment_content_hidden")[0].innerText = $("#post_comment_content").val() + "\n"; $("#post_comment_content").css("height" , $("#post_comment_content_hidden").outerHeight()); @@ -1272,7 +1272,7 @@ if (argonConfig.waterflow_columns != "1") { $(".post-comment-captcha-container").removeClass("active"); }); - //发送评�? + //发送评论 window.postComment = function postComment(){ let commentContent = $("#post_comment_content").val(); let commentName = $("#post_comment_name").val(); @@ -1298,7 +1298,7 @@ if (argonConfig.waterflow_columns != "1") { let isError = false; let errorMsg = ""; - //检查表单合法�? + //检查表单合法性 if (commentContent.match(/^\s*$/)){ isError = true; errorMsg += __("评论内容不能为空") + ""; @@ -1311,7 +1311,7 @@ if (argonConfig.waterflow_columns != "1") { if ($("#post_comment").hasClass("enable-qq-avatar")){ if (!(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(commentEmail) && !(/^[1-9][0-9]{4,10}$/).test(commentEmail)){ isError = true; - errorMsg += __("邮箱�?QQ 号格式错�?) + ""; + errorMsg += __("邮箱或QQ 号格式错误") + ""; } }else{ if (!(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(commentEmail)){ @@ -1324,7 +1324,7 @@ if (argonConfig.waterflow_columns != "1") { if ($("#post_comment").hasClass("enable-qq-avatar")){ if (!(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(commentEmail) && !(/^[1-9][0-9]{4,10}$/).test(commentEmail)){ isError = true; - errorMsg += __("邮箱�?QQ 号格式错�?) + ""; + errorMsg += __("邮箱或QQ 号格式错误") + ""; } }else{ if (!(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(commentEmail)){ @@ -1336,20 +1336,20 @@ if (argonConfig.waterflow_columns != "1") { } if (commentLink != "" && !(/https?:\/\//).test(commentLink)){ isError = true; - errorMsg += __("网站格式错误 (不是 http(s):// 开�?") + ""; + errorMsg += __("网站格式错误 (不是 http(s):// 开头)") + ""; } if (!$("#post_comment").hasClass("no-need-captcha")){ - // 检查是否使用Geetest验证�? + // 检查是否使用Geetest验证码 if ($("#geetest-captcha").length > 0) { - // 检查Geetest库是否加载成�? + // 检查Geetest库是否加载成功 if (typeof window.geetestLoadFailed !== 'undefined' && window.geetestLoadFailed) { isError = true; errorMsg += __("验证码服务不可用,请刷新页面重试"); } else if (typeof window.geetestCaptcha === 'undefined' || !window.geetestCaptcha) { isError = true; - errorMsg += __("验证码未初始化,请稍后重�?); + errorMsg += __("验证码未初始化,请稍后重试");; } else { - // Geetest验证码检�? + // Geetest验证码检查 let lotNumber = $("#geetest_lot_number").val(); let captchaOutput = $("#geetest_captcha_output").val(); let passToken = $("#geetest_pass_token").val(); @@ -1361,19 +1361,19 @@ if (argonConfig.waterflow_columns != "1") { } } } else { - // 原有的数学验证码检�? + // 原有的数学验证码验证 if (commentCaptcha == ""){ isError = true; errorMsg += __("验证码未输入"); } if (commentCaptcha != "" && !(/^[0-9]+$/).test(commentCaptcha)){ isError = true; - errorMsg += __("验证码格式错�?); + errorMsg += __("验证码格式错误"); } } } if (isError){ - // 确保按钮和表单元素处于可用状�? + // 确保按钮和表单元素处于可用状态 $("#post_comment_send").removeAttr("disabled"); $("#post_comment_content").removeAttr("disabled"); $("#post_comment_name").removeAttr("disabled"); @@ -1383,7 +1383,7 @@ if (argonConfig.waterflow_columns != "1") { $("#post_comment_reply_cancel").removeAttr("disabled"); $("#post_comment").removeClass("sending"); $("#post_comment_send .btn-inner--icon.hide-on-comment-editing").html(""); - $("#post_comment_send .btn-inner--text.hide-on-comment-editing").html(__("发�?)); + $("#post_comment_send .btn-inner--text.hide-on-comment-editing").html(__("发送")); iziToast.show({ title: __("评论格式错误"), @@ -1401,7 +1401,7 @@ if (argonConfig.waterflow_columns != "1") { return; } - //增加 disabled 属性和其他的表单提�? + //增加 disabled 属性和其他的表单提示 $("#post_comment").addClass("sending"); $("#post_comment_content").attr("disabled","disabled"); $("#post_comment_name").attr("disabled","disabled"); @@ -1414,7 +1414,7 @@ if (argonConfig.waterflow_columns != "1") { $("#post_comment_send .btn-inner--text.hide-on-comment-editing").html(__("发送中")); iziToast.show({ - title: __("正在发�?), + title: __("正在发送"), message: __("评论正在发送中..."), class: 'shadow-sm iziToast-noprogressbar', position: 'topRight', @@ -1444,11 +1444,11 @@ if (argonConfig.waterflow_columns != "1") { argon_nonce: $("#argon_comment_nonce").val() }; - // 根据验证码类型添加相应参�? + // 根据验证码类型添加相应参数 if ($("#geetest-captcha").length > 0) { - // 检查Geetest库加载状�? + // 检查Geetest库加载状态 if (typeof window.geetestLoadFailed !== 'undefined' && window.geetestLoadFailed) { - // 重新启用按钮和表单元�? + // 重新启用按钮和表单元素 $("#post_comment").removeClass("sending"); $("#post_comment_content").removeAttr("disabled"); $("#post_comment_name").removeAttr("disabled"); @@ -1458,13 +1458,13 @@ if (argonConfig.waterflow_columns != "1") { $("#post_comment_send").removeAttr("disabled"); $("#post_comment_reply_cancel").removeAttr("disabled"); $("#post_comment_send .btn-inner--icon.hide-on-comment-editing").html(""); - $("#post_comment_send .btn-inner--text.hide-on-comment-editing").html(__("发�?)); + $("#post_comment_send .btn-inner--text.hide-on-comment-editing").html(__("发送")); setTimeout(function() { try { iziToast.destroy(); iziToast.error({ - title: __('评论发送失�?), + title: __('评论发送失败'), message: __('验证码服务不可用,请刷新页面重试'), position: 'topRight' }); @@ -1475,7 +1475,7 @@ if (argonConfig.waterflow_columns != "1") { return false; } - // Geetest验证码参�?- 使用后端期望的参数名 + // Geetest验证码参数 - 使用后端期望的参数名 ajaxData.lot_number = $("#geetest_lot_number").val(); ajaxData.captcha_output = $("#geetest_captcha_output").val(); ajaxData.pass_token = $("#geetest_pass_token").val(); @@ -1483,7 +1483,7 @@ if (argonConfig.waterflow_columns != "1") { // 验证Geetest参数是否完整 if (!ajaxData.lot_number || !ajaxData.captcha_output || !ajaxData.pass_token || !ajaxData.gen_time) { - // 重新启用按钮和表单元�? + // 重新启用按钮和表单元素 $("#post_comment").removeClass("sending"); $("#post_comment_content").removeAttr("disabled"); $("#post_comment_name").removeAttr("disabled"); @@ -1493,14 +1493,14 @@ if (argonConfig.waterflow_columns != "1") { $("#post_comment_send").removeAttr("disabled"); $("#post_comment_reply_cancel").removeAttr("disabled"); $("#post_comment_send .btn-inner--icon.hide-on-comment-editing").html(""); - $("#post_comment_send .btn-inner--text.hide-on-comment-editing").html(__("发�?)); + $("#post_comment_send .btn-inner--text.hide-on-comment-editing").html(__("发送")); // 使用 setTimeout 确保 iziToast 操作在下一个事件循环中执行 setTimeout(function() { try { iziToast.destroy(); iziToast.error({ - title: __('评论发送失�?), + title: __('评论发送失败'), message: __('请完成验证码验证'), position: 'topRight' }); @@ -1511,7 +1511,7 @@ if (argonConfig.waterflow_columns != "1") { return false; } } else { - // 原有数学验证码参�? + // 原有数学验证码参数 ajaxData.comment_captcha_seed = commentCaptchaSeed; ajaxData.comment_captcha = commentCaptcha; } @@ -1530,20 +1530,20 @@ if (argonConfig.waterflow_columns != "1") { $("#post_comment_send").removeAttr("disabled"); $("#post_comment_reply_cancel").removeAttr("disabled"); $("#post_comment_send .btn-inner--icon.hide-on-comment-editing").html(""); - $("#post_comment_send .btn-inner--text.hide-on-comment-editing").html(__("发�?)); + $("#post_comment_send .btn-inner--text.hide-on-comment-editing").html(__("发送")); $("#post_comment").removeClass("show-extra-input post-comment-force-privatemode-on post-comment-force-privatemode-off"); if (!result.isAdmin){ $("#post_comment_captcha").removeAttr("disabled"); } - //判断是否有错�? + //判断是否有错误 if (result.status == "failed"){ // 使用 setTimeout 确保 iziToast 操作在下一个事件循环中执行 setTimeout(function() { try { iziToast.destroy(); iziToast.show({ - title: __("评论发送失�?), + title: __("评论发送失败"), message: result.msg, class: 'shadow-sm', position: 'topRight', @@ -1562,14 +1562,14 @@ if (argonConfig.waterflow_columns != "1") { return; } - //发送成�? + //发送成功 // 使用 setTimeout 确保 iziToast 操作在下一个事件循环中执行 setTimeout(function() { try { iziToast.destroy(); iziToast.show({ - title: __("发送成�?), - message: __("您的评论已发�?), + title: __("发送成功"), + message: __("您的评论已发送"), class: 'shadow-sm', position: 'topRight', backgroundColor: '#2dce89', @@ -1580,7 +1580,7 @@ if (argonConfig.waterflow_columns != "1") { icon: 'fa fa-check', timeout: 5000 }); - //插入新评�? + //插入新评论 result.html = result.html.replace(/<(\/).noscript>/g, ""); let parentID = result.parentID; if (parentID == "" || parentID == null){ @@ -1611,7 +1611,7 @@ if (argonConfig.waterflow_columns != "1") { $("#post_comment_captcha + style").html(".post-comment-captcha-container:before{content: '" + result.newCaptcha + "';}"); $("#post_comment_captcha").val(result.newCaptchaAnswer); - // 清空Geetest验证码隐藏字�? + // 清空Geetest验证码隐藏字段 if ($("#geetest-captcha").length > 0) { $("#geetest_lot_number").val(""); $("#geetest_captcha_output").val(""); @@ -1639,13 +1639,13 @@ if (argonConfig.waterflow_columns != "1") { $("#post_comment_send").removeAttr("disabled"); $("#post_comment_reply_cancel").removeAttr("disabled"); $("#post_comment_send .btn-inner--icon.hide-on-comment-editing").html(""); - $("#post_comment_send .btn-inner--text.hide-on-comment-editing").html(__("发�?)); + $("#post_comment_send .btn-inner--text.hide-on-comment-editing").html(__("发送")); $("#post_comment").removeClass("show-extra-input post-comment-force-privatemode-on post-comment-force-privatemode-off"); if (!result.isAdmin){ $("#post_comment_captcha").removeAttr("disabled"); } - // 重置Geetest验证状�? + // 重置Geetest验证状态 window.geetestVerified = false; // 重置自动提交标记 window.geetestAutoSubmitting = false; @@ -1653,17 +1653,17 @@ if (argonConfig.waterflow_columns != "1") { $("#geetest_captcha_output").val(""); $("#geetest_pass_token").val(""); $("#geetest_gen_time").val(""); - // 重置 Geetest 实例,确保下一次生成新�?pass_token + // 重置 Geetest 实例,确保下一次生成新的pass_token if (window.geetestCaptcha) { try { window.geetestCaptcha.reset(); } catch (e) {} } - // 安全地处�?iziToast 操作,防�?time 属性错�? + // 安全地处理iziToast 操作,防止time 属性错误 setTimeout(function() { try { iziToast.destroy(); iziToast.show({ - title: __("评论发送失�?), + title: __("评论发送失败"), message: __("未知原因"), class: 'shadow-sm', position: 'topRight', @@ -1709,16 +1709,16 @@ if (argonConfig.waterflow_columns != "1") { return; } - //增加 disabled 属性和其他的表单提�? + //增加 disabled 属性和其他的表单提交 $("#post_comment_content").attr("disabled","disabled"); $("#post_comment_send").attr("disabled","disabled"); $("#post_comment_edit_cancel").attr("disabled","disabled"); $("#post_comment_send .btn-inner--icon.hide-on-comment-not-editing").html(""); - $("#post_comment_send .btn-inner--text.hide-on-comment-not-editing").html(__("编辑�?)); + $("#post_comment_send .btn-inner--text.hide-on-comment-not-editing").html(__("编辑中")); iziToast.show({ title: __("正在编辑"), - message: __("评论正在编辑�?.."), + message: __("评论正在编辑中.."), class: 'shadow-sm iziToast-noprogressbar', position: 'topRight', backgroundColor: 'var(--themecolor)', @@ -1747,7 +1747,7 @@ if (argonConfig.waterflow_columns != "1") { $("#post_comment_send .btn-inner--icon.hide-on-comment-not-editing").html(""); $("#post_comment_send .btn-inner--text.hide-on-comment-not-editing").html(__("编辑")); - //判断是否有错�? + //判断是否有错误 if (result.status == "failed"){ iziToast.destroy(); iziToast.show({ @@ -1766,12 +1766,12 @@ if (argonConfig.waterflow_columns != "1") { return; } - //发送成功,替换原评�? + //发送成功,替换原评论 result.new_comment = result.new_comment.replace(/<(\/).noscript>/g, ""); $("#comment-" + editID + " .comment-item-text").html(result.new_comment); $("#comment-" + editID + " .comment-item-source").html(result.new_comment_source); if ($("#comment-" + editID + " .comment-info .comment-edited").length == 0){ - $("#comment-" + editID + " .comment-info").prepend("