diff --git a/resources/js/admin-login.js b/resources/js/admin-login.js new file mode 100644 index 0000000..fc3f918 --- /dev/null +++ b/resources/js/admin-login.js @@ -0,0 +1,39 @@ +// 站长登录页交互入口,集中管理验证码刷新,避免在 Blade 中暴露全局函数。 + +let adminLoginControlsBound = false; + +/** + * 为验证码图片追加随机参数,强制浏览器重新请求图片。 + * + * @param {HTMLImageElement} captchaImage + * @returns {void} + */ +function refreshCaptchaImage(captchaImage) { + const refreshUrl = captchaImage.getAttribute("data-captcha-refresh-url") ?? "/captcha/default"; + captchaImage.src = `${refreshUrl}?${Math.random()}`; +} + +/** + * 绑定站长登录页验证码刷新事件。 + * + * @returns {void} + */ +function bindAdminLoginControls() { + if (adminLoginControlsBound || typeof document === "undefined") { + return; + } + + adminLoginControlsBound = true; + + document.addEventListener("click", (event) => { + if (!(event.target instanceof HTMLImageElement)) { + return; + } + + if (event.target.hasAttribute("data-captcha-refresh-url")) { + refreshCaptchaImage(event.target); + } + }); +} + +bindAdminLoginControls(); diff --git a/resources/views/admin/auth/login.blade.php b/resources/views/admin/auth/login.blade.php index 543ceef..d7ce90e 100644 --- a/resources/views/admin/auth/login.blade.php +++ b/resources/views/admin/auth/login.blade.php @@ -522,7 +522,7 @@
站长登录验证码 + data-captcha-refresh-url="/captcha/default" title="点击刷新验证码">
@@ -552,14 +552,7 @@ - + @vite('resources/js/admin-login.js') diff --git a/vite.config.js b/vite.config.js index 95b2926..e03b379 100644 --- a/vite.config.js +++ b/vite.config.js @@ -7,6 +7,7 @@ export default defineConfig({ laravel({ input: [ "resources/css/app.css", + "resources/js/admin-login.js", "resources/js/app.js", "resources/js/chat.js", "resources/js/effects.js",