Tovább a tartalomhoz

Gravity Forms-szkriptek indítása Elementor popupban

Mit tegyél, ha az Elementor popupban megjelenő űrlap szkriptjei (például a feltételes logika) nem indulnak el, és hogyan indítsd el őket kóddal.

Ha az űrlapot Elementor popupba teszed, az űrlap a popup megnyitásakor jelenik meg, nem az oldal betöltésekor. A Gravity Forms megjelenítés utáni szkriptjei ilyenkor nem biztos, hogy lefutnak, és az űrlap egyes funkciói (például a feltételes logika vagy a számítások) nem működnek. A megoldás egy rövid JavaScript-részlet, amely a popup megnyitásakor megkeresi benne az űrlapot, és elindítja a szükséges eseményeket.

A szkript az Elementor elementor/popup/show eseményére figyel. Megnyitáskor a popup tartalmában megkeresi az űrlapot, kiolvassa az azonosítóját, majd elindítja a megjelenítés utáni eseményeket az első oldalra.

window.addEventListener( 'elementor/popup/show', ( event ) => {
if ( ! gform?.utils ) {
return;
}
const form = gform.utils.getNode( '.gform_wrapper form', event.detail.instance.$elements, true );
if ( ! form ) {
return;
}
const formId = form.dataset.formid;
const currentPage = 1;
console.log( 'elementor/popup/show: triggering post render scripts for form', formId );
if ( gform.core?.triggerPostRenderEvents ) {
// Gravity Forms 2.9.5 és újabb.
gform.core.triggerPostRenderEvents( formId, currentPage );
} else {
// Régebbi verziók.
jQuery( document ).trigger( 'gform_post_render', [ formId, currentPage ] );
gform.utils.trigger( { event: 'gform/postRender', native: false, data: { formId, currentPage } } );
gform.utils.trigger( { event: 'gform/post_render', native: false, data: { formId, currentPage } } );
}
} );

Hogyan működik:

  • Ha a gform.utils nem érhető el (az oldalon nincs betöltve a Gravity Forms szkriptje), a kód kilép.
  • Ha a popupban nincs űrlap, szintén kilép.
  • A 2.9.5-ös és újabb Gravity Forms a gform.core.triggerPostRenderEvents függvényt használja. Régebbi verziókon a kód a három megjelenítés utáni eseményt külön indítja el.
  • A console.log sor csak a böngésző konzoljában jelzi, hogy a szkript lefutott. Éles oldalon kitörölheted.

A szkriptet az oldal frontendjén kell betölteni. Hogyan add hozzá az oldaladhoz, azt a JavaScript hozzáadása az oldal frontendjéhez fejezet írja le.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások