Javascript concatenation Captcha ne s'affiche pas

Javascript concatenation Captcha ne s'affiche pas - Javascript/Node.js - Programmation

Marsh Posté le 09-02-2024 à 06:54:02    

Bonjour. j'utilise hcaptcha sur mon site et sur les pages en HTML, il fonctionne normalement
 
Là, je dois lancer un décompte JS qui ouvre un formulaire (pour un faucet crypto) donc je fais mon décompte en JS et ensuite j'affiche le formulaire avec innerHTML
 
Or, le frame du captcha est inopérant.
 
Voici un code qui marche en HTML
 

Code :
  1. <form action="https://www.ypikay.com/verifyshrinkstep1.php" method="POST">
  2.   <div class="groslien">Shrink pays once every 24 hours</div><br>
  3.   <div class="grostexte">Please solve captcha and submit your FaucetPay email to be credited <b>3</b> BTC Satoshi</div><br>
  4.   <div class="h-captcha" data-sitekey="xxxxxx-64b8-4019-9cca-040b99e803cc"></div><br>
  5.   <div class="grostexte">Your FaucetPay email :&nbsp;&nbsp;<input type="text" name="faucetpay" style=""></input>
  6.    <input type="image" id="image" alt="Proceed" src="bouton-submit.png" />
  7.    </div>
  8.   </form>


 
Voici le code qui refuse de marcher en JS
 

Code :
  1. document.getElementById("demo" ).innerHTML = '<form id="faucet" method="POST" action="faucet_payeur.php">' +
  2. '<input type="hidden" name="user" value="<?php echo $user; ?>">' +
  3. '<div class="h-captcha" data-sitekey="xxxxxx-64b8-4019-9cca-040b99e803cc"></div>' +
  4. '<input type="hidden" name="origin" value="ypikay_faucet">' +
  5. '<input type="hidden" name="time" value="' + new Date().getTime() + '">' +
  6. '<input type="submit" value="CLAIM FROM FAUCET"></input></form>';


Dans le code ci-dessus tout s'affiche sauf le captcha
J'ai bien mis le script pour le captcha au même endroit (dans le <head> )
 
Any ideas ?


Message édité par erwan83 le 09-02-2024 à 06:58:12

---------------
http://www.ypikay.com
Reply

Marsh Posté le 09-02-2024 à 06:54:02   

Reply

Marsh Posté le 09-02-2024 à 07:48:58    

Ton code dans le head doit attendre la fin de chargement de la page (onload ou domready) pour la parser à la recherche d'un div avec class="h-captcha" et/ou data-sitekey="xxxxxx-64b8-4019-9cca-040b99e803cc".
 
Au moment ou il la parse ce contenu n'existe pas, il faut re déclencher un parsing de la page et/ou utiliser une autre méthode pour ton form, il pourrait être présent mais en display:none par exemple...


---------------
D3
Reply

Marsh Posté le 09-02-2024 à 08:18:18    

Ahhh ça se complique !
donc je dois mettre une requete de controle en JS dans mon head et rebalancer le script une fois que j'affiche le Bouton c'est bien ça ?


---------------
http://www.ypikay.com
Reply

Marsh Posté le 09-02-2024 à 10:29:19    

Bon je dois dire que je n'y arrive pas...  
Si quelqu'un pouvait me donner un exemple SVP ?


---------------
http://www.ypikay.com
Reply

Marsh Posté le 09-02-2024 à 13:10:24    

Tu peux essayer d'ajouter ton script dans le head en même temps que ton innerHTML, comme ça ton contenu existe quand il est chargé et il peut afficher le captcha, problem solved.
 
...en vrai c'est crade mais bon. :o  
En plus propre, regarder si tu peux actualiser les recaptcha après l'ajout de contenu en javascript.
Sinon le plus simple et qui devrait aussi fonctionner c'est d'avoir ton contenu déjà dans la page mais "masqué" et que tu fasse un display:none; => display:block: en javascript.


---------------
D3
Reply

Marsh Posté le 09-02-2024 à 16:37:46    

ah oui effectivement ça pourrait être la solution...
en passant par le display


Message édité par erwan83 le 09-02-2024 à 16:38:09

---------------
http://www.ypikay.com
Reply

Marsh Posté le 09-02-2024 à 17:53:03    

Ça fonctionne en tout cas avec le reCaptcha de Google dans des formulaires de contact de type "modal" comme ce qui se fait dans Foundation https://get.foundation/sites/docs/reveal.html


---------------
D3
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed