mirror of
https://github.com/go-gitea/gitea.git
synced 2026-10-04 07:33:44 +09:00
@@ -1,5 +1,5 @@
|
|||||||
{{if .EnableCaptcha}}{{if eq .CaptchaType "image"}}
|
{{if .EnableCaptcha}}{{if eq .CaptchaType "image"}}
|
||||||
<div class="inline field tw-text-center">
|
<div class="inline field tw-text-center" data-global-init="initImageCaptcha">
|
||||||
{{.Captcha.CreateHTML}}
|
{{.Captcha.CreateHTML}}
|
||||||
</div>
|
</div>
|
||||||
<div class="required field {{if .Err_Captcha}}error{{end}}">
|
<div class="required field {{if .Err_Captcha}}error{{end}}">
|
||||||
|
|||||||
@@ -1,6 +1,19 @@
|
|||||||
import {isDarkTheme} from '../utils.ts';
|
import {isDarkTheme} from '../utils.ts';
|
||||||
|
import {registerGlobalInitFunc} from '../modules/observer.ts';
|
||||||
|
|
||||||
export async function initCaptcha() {
|
export async function initCaptcha() {
|
||||||
|
registerGlobalInitFunc('initImageCaptcha', (el: HTMLElement) => {
|
||||||
|
const a = el.querySelector('a')!;
|
||||||
|
a.removeAttribute('href'); // remove generated href="javascript:"
|
||||||
|
const img = el.querySelector('img')!;
|
||||||
|
img.removeAttribute('onclick'); // remove generated onclick="...." and use our own event listener
|
||||||
|
img.addEventListener('click', () => {
|
||||||
|
const url = new URL(img.src);
|
||||||
|
url.searchParams.set('reload', String(Date.now()));
|
||||||
|
img.src = url.href;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
const captchaEl = document.querySelector('#captcha');
|
const captchaEl = document.querySelector('#captcha');
|
||||||
if (!captchaEl) return;
|
if (!captchaEl) return;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user