add input selector for challenge response output

This commit is contained in:
overflowerror 2024-08-16 23:23:44 +02:00
parent 7c5a5e494c
commit b50df6c808
2 changed files with 8 additions and 1 deletions

View file

@ -5,6 +5,11 @@
<link href="bundle.css" rel="stylesheet">
</head>
<body>
<div class="captcha" data-challenge-url="/challenge.json" data-success-callback="console.log"></div>
<div class="captcha"
data-challenge-url="/challenge.json"
data-success-callback="console.log"
data-input-selector=".response"
></div>
<input type="text" value="" class="response">
</body>
</html>

View file

@ -55,6 +55,7 @@ const prepareCaptcha = async (captcha: Element) => {
}
let successCallback = captcha.getAttribute("data-success-callback");
let inputSelector = captcha.getAttribute("data-input-selector");
const checkbox = initCaptchaContentAndGetCheckbox(captcha);
@ -69,6 +70,7 @@ const prepareCaptcha = async (captcha: Element) => {
checkbox.addEventListener("click", prepareChallengeExecution(challenge, response => {
if (successCallback) eval(successCallback)(response);
if (inputSelector) [...document.querySelectorAll(inputSelector)].forEach((input: HTMLInputElement) => input.value = response)
}));
}