fix(ui): 提交防重复覆盖验证码路径、waline 按页加载、懒加载、safe-area、硬编码文案接字典
1) 防重复点击原来漏了最主要的一条路径
footer 的全局 submit 监听会禁用按钮,但**程序化 form.submit() 不触发 submit 事件** ——
走 reCAPTCHA / Turnstile 的流程是在回调里调 form.submit() 的,而默认配置
captcha_type = recaptcha,也就是主提问流一直没有防重复。登录、注册、找回密码、
投票、注销账号同样走这个回调。
→ 把「切提交中状态」抽成 tbBeginSubmit(form, trigger) 挂到 window,
验证码回调先调它再 submit。7 个 data-callback="onSubmit" 的模板全部受益。
顺带加了 data-tb-restore 的重复覆盖保护,避免 bfcache 复位后按钮卡在转圈。
2) waline.js / waline.css 从全站改按页加载
只有 home.html 与 item.html 用评论区,但此前挂在 header 里 —— 登录、后台、投票、
私聊每页都下载解析 waline.js(2.15 未压缩约 200KB)。实测 /login 已无引用。
3) 图片懒加载:explore 列表头像与题目配图加 loading="lazy"(首屏推荐位不加,避免影响 LCP)。
4) 移动端底栏:body 只预留固定 56px,而底栏 padding 含 safe-area-inset-bottom。
带 Home Indicator 的 iPhone 上 inset 约 34px、底栏实际约 88px,最后约 32px
(页脚备案、存活计时)被压在栏下,滚到底也看不到。改成 calc(56px + env(...))。
5) 硬编码中文接字典(en/ja 用户此前直接看到中文):
history-template 的「查看回答 / 加载更多 / 加载中... / 无更多留言」、
单题页「@xxx 以前回答过的问题」(字典里本来就有 ask.history)、
投票页「(最多 N 项)」改为带参数的整句(原先前半走字典、后半手写中文)。
新增 4 个 key × 4 语言。
实测:箱主语言设为 en 后箱主页显示 View answer ×2 / Load more / No more posts,中文零残留。
This commit is contained in:
@@ -299,6 +299,9 @@ var jaDict = map[string]string{
|
||||
"qlist.unpinShort": "解除",
|
||||
"qlist.myVotes": "作成した投票",
|
||||
"qlist.loadMore": "もっと読み込む",
|
||||
"qlist.noMore": "これ以上の投稿はありません",
|
||||
"qlist.loading": "読み込み中...",
|
||||
"qlist.viewAnswer": "回答を見る",
|
||||
"qlist.newVote": "投票を作成",
|
||||
"qlist.edit": "編集",
|
||||
"qlist.untitledVote": "無題の投票",
|
||||
@@ -629,6 +632,7 @@ var jaDict = map[string]string{
|
||||
"vote.page.rankHint": "各選択肢に 1-N の順位を入力してください(小さいほど上位、重複不可)",
|
||||
"vote.page.rankPlaceholder": "順位",
|
||||
"vote.page.multipleHint": "複数選択可",
|
||||
"vote.page.multipleHintWithMax": "複数選択可(最大 %d 件)",
|
||||
"vote.page.customOption": "カスタム選択肢(任意)",
|
||||
"vote.page.customPlaceholder": "あなたの選択肢を入力",
|
||||
"vote.page.customOther": "その他",
|
||||
|
||||
Reference in New Issue
Block a user