From 3045b630f0ff6425d3cfd54ab98061f41ae5a3c5 Mon Sep 17 00:00:00 2001
From: Sora39831 <540587985@qq.com>
Date: Fri, 3 Apr 2026 03:01:18 +0800
Subject: [PATCH] fix: use render=explicit and HTMLElement for Turnstile to fix
Rocket Loader conflict
- Add ?render=explicit to api.js URL to disable auto-initialization
- Pass HTMLElement (not selector string) to turnstile.render() and turnstile.reset()
- Prevents race condition where Turnstile auto-renders before body DOM is parsed
---
web/html/login.html | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/web/html/login.html b/web/html/login.html
index 2c6e3b4c..12b56b1e 100644
--- a/web/html/login.html
+++ b/web/html/login.html
@@ -1,5 +1,5 @@
{{ template "page/head_start" .}}
-
+
{{ template "page/head_end" .}}
{{ template "page/body_start" .}}
@@ -211,18 +211,24 @@
this.regUser = { username: "", password: "", confirmPassword: "" };
turnstileToken = '';
if (window.turnstile) {
- turnstile.reset('#turnstile-widget');
+ var container = document.getElementById('turnstile-widget');
+ if (container) {
+ turnstile.reset(container);
+ }
}
}
this.loadingStates.registerSpinning = false;
},
renderTurnstile() {
if (window.turnstile) {
- turnstile.render('#turnstile-widget', {
- sitekey: this.turnstileSiteKey,
- callback: function(token) { turnstileToken = token; },
- size: this.turnstileSize,
- });
+ var container = document.getElementById('turnstile-widget');
+ if (container) {
+ turnstile.render(container, {
+ sitekey: this.turnstileSiteKey,
+ callback: function(token) { turnstileToken = token; },
+ size: this.turnstileSize,
+ });
+ }
}
},
async getTurnstileSiteKey() {