Hol tudnám elnyomni a “biztosan el akarja hagyni ezt az oldalt” felugró ablakot, amikor elhagyja a hozzájárulási oldalt (pl. adomány) anélkül, hogy a hozzájárulást ténylegesen folytatná. Tisztában vagyok vele, hogy megakadályozhatja az oldal véletlen elhagyását az űrlap kitöltése közben, de valójában azt gondolom, hogy ez inkább idegesítő, mint hasznos a véletlen esetek töredékében. Emellett van egy Facebook bejelentkezésem az oldalon, amely , használatakor arra kényszeríti az oldalt, hogy töltse be újra, és így meghívja a “hagyja el az oldalt” felugró ablakot. Ez zavarba ejtő a felhasználó számára, aki nem tudja, hogy a bejelentkezéshez meg kell nyomnia az “oldal elhagyása” gombot (nem hogy megemlítsem, hogy “valójában az oldalon maradnak, ezért a zavarodottság).
Ez a Joomla-n van (3.4.4 w / CiviCRM 4.6.9)
Feltételezve, hogy ott “s egy onbeforeunload
függvény – az egyik a /administrator/components/com_civicrm/civicrm/js/Common.js fájlban jelenik meg
A figyelmeztetés akkor is megjelenik, ha a felhasználó még nem bármilyen bejegyzést tett az űrlapon. Nem szabad, hogy a figyelmeztetés csak akkor jelenjen meg?
Köszönjük a mutatókat.
Megjegyzések
- Rendben, ezért kommentálja a ' fájlt A fent említett fájl ' függvénye határozottan eltávolítja a felugró ablakot, de az a kérdés, ahogyan valóban fel kellett volna tennem a kérdést, hogyan hívhatnánk meg a függvényt csak akkor, ha valamit beírnak / kiválasztanak az űrlapba oldalon. Mert ebben az esetben ' hasznos.
- I ' d ezt a viselkedést az utóbbi időben egyszer-kétszer megfigyeltem a 4.6-oson Úgy gondolom, hogy egy pillanatra meg kell vizsgálni, ha újra látom. Ez elég zavaró, de mivel beküldéskor vagy újratöltéskor megtörtént volna, éppen az ESC-t vagy bármi mást ütött el, ASAP: D
Válasz
A CiviCRM a jQuery segítségével figyeli az űrlap bemenetét, és csak akkor figyelmeztet, ha nem mentett változások vannak. Megtalálja a kódot a Common.js fájlban. Amikor kipróbálok egy bemutató oldalt a demo szerveren, úgy tűnik, hogy megfelelően működik; ha nyisson meg egy hozzájárulás oldalt , ne írjon be semmit és bezárja a lapot, nem kapok figyelmeztetést. De ha beírok egy összeget, majd megpróbálom elhagyni, akkor az onbeforeunload üzenet .
Ha felkészült rá, akkor a CRM.utils.initialValueChanged
függvény hibakeresésével megtudhatja, miért civi úgy gondolja, hogy az űrlap megváltozott, amikor ez nem lenne hasznos visszajelzés számunkra a szoftver fejlesztése érdekében.
Vagy hozzáadhat egy kis javascriptet az FB bejelentkezési gombjához. Ha a meglévő jelölés úgy néz ki, hogy <button type="submit">
, akkor hozzáadhatod hozzá, így úgy néz ki, hogy <button type="submit" onclick="window.onbeforeunload = null;">
De komolyan, a hibakeresési visszajelzés hasznos lehet.
Megjegyzések
- Köszönöm, Coleman, az információkat. Nem vagyok ' fejlesztő, de kinézni fogok abba, hogy Civi miért gondolja, hogy valami megváltozott az űrlapon, és tegyen itt közzé másoknak (és a Civi csapatának is).
- Csak találgatás – lehetséges, hogy a böngésző automatikus kitöltése beszúr valamit az űrlapba?
Válasz
Ez akkor történik, ha a felhasználói regisztrációhoz beépített profil (“Név és cím” of-the-box cím) szerepel a közreműködés oldalon. Cserélje egy másik profilra, és az előugró ablak nem jelenik meg. Ezt megismételte a Joomla CiviCRM demo webhelyén.
Megjegyzések
- Jó lenne leszűkíteni a profil adott mezőjére .
- Köszönöm, hogy kéri a pontosítást, Coleman. ' nem tartozik a mezők egyikébe – ugyanazokat használtam egy új profilban, amelyek nem a beépített ' egyet a felhasználói regisztrációhoz, és tökéletesen működik.
- hogy ' s … furcsa.
- I ' ezt a hibát egy másik profil használatával kapom
Válasz
Abban az esetben, ha” s ” felhasználás másoknak: Az ismétlődő adomány jelölőnégyzetet (“Szeretnék havonta hozzájárulni ehhez az összeghez”) alapértelmezés szerint igaznak (bejelölve) kívántam tenni egy adott adományozási űrlapon. Ehhez a következő egyéni javascriptet használtam.
Miután a javascriptben az értéket „ellenőrzött” értékre állította, a .data("crm-initial-value", true)
kódra volt szükség, hogy megakadályozza a CiviCRM-et abban, hogy más oldalra navigálva panaszkodjon a nem mentett változásokról.
<script> CRM.$(function($) { // make recurring contribution checkbox true by default var r = $("#is_recur"); if (!r.length) { return; } r.attr("checked", "checked"); r.prop("defaultChecked", true); r.prop("checked", true); // necessary to tell Civi the default value has changed r.data("crm-initial-value", true); </script>