[JS] load hCaptcha nach onclick event

netzgestaltung

Captain
Registriert
Jan. 2020
Beiträge
3.168
Moin,

ich darf auch mal was spezifisches Fragen, ev hatte das schon mal jemand.

Ihr kennt ja ggf noch von früher das "2-clicks-für-mehr-datenschutz" system, damals für facebook buttons.
Hier auf CB gut sichtbar bei Youtube Videos.

Dieses Ziel verfolge ich ebenfalls immer bei allen Drittanbieterverbindungen von Webseiten.
Umgesetzt hab ich sowas schon mit diversen APIs - natürlich spart das auch Seitenaufrufe und Ladezeiten.

Nun hab ich eine Konstellation beisammen....
System: WordPress
Formular: Formidable Forms offenbar eine Premium installation.
Captchaanbieter: hCaptcha
Theme: Enfold

Das Captcha wird vom Forms-Plugin bereits OOB unterstützt, Site-Key und Secret sind eingetragen, es funktioniert soweit alles.
Im Formular hab ich einen "Umschalter" hinzugefügt und das Captcha wird bereits optisch versteckt, wenn der Schalter nicht aktiv ist.
Screenshot 2023-05-16 at 10-37-25 Digitale Grußkarte - Wiener Gesundheitsverbund - Pflege Wien.png


Jedoch wird weiterhin beim Seitenladen eine Verbindung zu hCaptcha aufgebaut.
Dies will ich nun ebenfalls auf den Umschalter legen und das Feld erst generieren, wenn der getriggert wurde.

Normal finde ich in kurzer Zeit auf DDG alles was ich zu so einer API brauche, aber hier gibts scheinbar weder Dokumentation noch Fragende mit dem gleichen Thema?

Es geht letztlich um einen WP Hook, der den einbau der externen JS Adresse filtert/verhindert und per Lokalisierung als globale JS variable bereit stellt. Kennt jemand Formidable Forms - wo soll ich als erstes reinschauen?

Nicht geholfen haben die Conditionals sowie die Actions&Notifications:
https://formidableforms.com/knowledgebase/conditionals/

Ich werde jetzt beginnen, das Plugin zu durchforsten, und ggf Ergebnisse posten.
Dazu werde ich https://formidableforms.com/knowledgebase/formidable-hooks/ konsultieren.

Hat schon jemand Erfahrung mit der dynamischen instanzierung von hCaptcha?
Wäre gut, wenn ich das nicht von Null neu bauen müsste.

PS.: noch was lustiges, vor lauter Verzweiflung hab ich sogar bei Google geschaut, aber was für ein Reinfall:
Screenshot 2023-05-16 at 10-11-23 load hcaptcha onclick - Google Suche.png
 
Zuletzt bearbeitet:
netzgestaltung schrieb:
das Captcha wird bereits optisch versteckt
netzgestaltung schrieb:
Jedoch wird weiterhin beim Seitenladen eine Verbindung zu hCaptcha aufgebaut.
Wenn du es nur optisch versteckst, wird es selbstverständlich weiterhin automatisch geladen. Es ist ja immer noch auf der Seite, nur halt gerade nicht sichtbar.

Du musst viel früher ansetzen. Also z.B. das Plugin gar nicht erst laden, wenn der Schalter deaktiviert ist. Und dann das Plugin nachladen und aktivieren, wenn der Schalter aktiviert wird.

netzgestaltung schrieb:
hab ich sogar bei Google geschaut, aber was für ein Reinfall
Setze "hCaptcha" in Anführungszeichen, dann klappts auch mit der Google Suche ;)
 
benneq schrieb:
Wenn du es nur optisch versteckst, wird es selbstverständlich weiterhin automatisch geladen. Es ist ja immer noch auf der Seite, nur halt gerade nicht sichtbar.

Du musst viel früher ansetzen. Also z.B. das Plugin gar nicht erst laden, wenn der Schalter deaktiviert ist. Und dann das Plugin nachladen und aktivieren, wenn der Schalter aktiviert wird.
Genau darum gehts! Nur wird der Schalter auch wieder von einem Plugin bereit gestellt.

Dazu werde ich jetzt mal https://formidableforms.com/knowledgebase/formidable-hooks/ konsultieren.
Ergänzung ()

Eine weitere Möglichkeit wäre es, wenn das Forms Plugin es denn bietet, ein 2-Seitiges Formular zu bauen, die 2. Seite wird per XHR geladen - da drin ist das Captcha. Das baue ich aber so, das man das mit den Seiten nicht mitbekommt.
Ergänzung ()

Jedenfalls interessante Hooks:
https://formidableforms.com/knowledgebase/frm_entries_footer_scripts/
https://formidableforms.com/knowledgebase/frm_entry_form/
Ergänzung ()

Hier steht schon mal alles was ich brauche um das spätere aktivieren von hCaptcha mit JS/API zu bauen.

Vorausgesetzt, ich bekomme die Daten rausgezutzelt.
https://docs.hcaptcha.com/configuration/
Ergänzung ()

HIer noch eine Referenz für später: https://javascript.info/script-async-defer#dynamic-scripts
 
Zuletzt bearbeitet:
Im hCaptcha WordPress Plugin ist eine ähnliche funktionalität - für den PageSpeed - schon eingebaut:
https://wordpress.org/plugins/hcaptcha-for-forms-and-more/#how to show hcaptcha widget instantly?

ahja, ich darf das Plugin-Set nicht verändern ;-)
Ergänzung ()

Das könnte auch ein heißer Kandidat sein:
https://stackoverflow.com/questions...event-a-later-script-tag-from-being-evaluated
Ergänzung ()

Hier hab ich mal den Aufruf gefunden:
https://github.com/Strategy11/formi...lasses/models/fields/FrmFieldCaptcha.php#L125

Bis morgen hab ich das vermutlich zusammengebaut.
 
Zuletzt bearbeitet:
Zurück
Oben