Webbox vkladá externú webovú stránku do prieskumu ako modálne vyskakovacie okno (iframe). Anketár ťukne na tlačidlo v popisku alebo poznámke, stránka sa otvorí vo fullscreen prekrytí v rámci formulára a keď ho zatvoria, vrátia sa presne tam, kde boli. To vám umožňuje zobrazovať referenčný materiál, mapy, dashboardy alebo vlastné nástroje bez otvorenia samostatnej karty prehliadača.


Syntax

Vložte HTML tag <webbox> priamo do stĺpca label alebo note:

  <webbox src='https://example.com/reference' title='Referenčná príručka'>Otvoriť referenčnú príručku</webbox>
  
AtribútPopis
srcURL na načítanie v iframe. Podporuje jednoduché aj dvojité úvodzovky.
titleText zobrazený v modálnom záhlaví. Podporuje obyčajný text.
(obsah)Popisok klikateľného tlačidla zobrazený v poli prieskumu

Základný príklad

typenamelabel
noteref_guide<webbox src='https://docs.example.com/field-guide' title='Terénna príručka'>📖 Otvoriť terénnu príručku</webbox>

Toto renderuje tlačidlo s popisom „📖 Otvoriť terénnu príručku". Po ťuknutí sa otvorí modál zobrazujúci webovú stránku terénnej príručky.


Vloženie mapy

typenamelabel
notearea_map<webbox src='https://maps.example.com/survey-area' title='Mapa oblasti prieskumu'>🗺 Zobraziť mapu</webbox>

Odovzdávanie hodnôt formulára do vloženej stránky

Pridajte hodnoty polí formulára k URL pomocou concat() v stĺpci calculation a odkazujte výsledok v popisku:

typenamelabelcalculation
calculatewebbox_urlconcat('https://dashboard.example.com/household?id=', ${household_id})
notehh_dash<webbox src='${webbox_url}' title='Dashboard domácnosti'>Otvoriť dashboard</webbox>

Interakcia s opakovaním: tlačidlá vymazania

Webbox tiež podporuje špeciálne akčné tagy na správu skupín opakovaní vo vnútri popiskov:

  <delete-repeat-current>Odstrániť tento riadok</delete-repeat-current>
<delete-repeat-last>Odstrániť posledný riadok</delete-repeat-last>
  

Tieto sa renderujú ako tlačidlá, ktoré pri ťuknutí vymažú inštancie opakovaní. Umiestnite ich do poľa note vo vnútri (alebo hneď za) skupinou opakovaní:

typenamelabel
begin_repeatitemsPoložka
textitem_nameNázov položky
notedelete_btn<delete-repeat-current>✕ Odstrániť túto položku</delete-repeat-current>
end_repeat

Komunikácia s vloženou stránkou (postMessage)

Iframe webboxu a nadradený formulár môžu komunikovať pomocou API postMessage prehliadača. Nadradená stránka odošle správu init do iframe keď sa otvorí. Vložená stránka môže odpovedať pomocou:

  • delete-repeat-current — spustí vymazanie aktuálnej inštancie opakovania
  • delete-repeat-last — spustí vymazanie poslednej inštancie opakovania

To umožňuje vlastným webovým nástrojom (napr. kresliace nástroje, interaktívne mapy) spúšťať akcie formulára, keď používateľ potvrdí akciu vo vnútri iframe.


Najlepšie postupy

  1. Používajte webbox pre referenčný materiál (usmernenia, vyhľadávacie tabuľky, mapy) — nie na zber dát, ktoré by mali byť vo formulári samotnom.
  2. Uistite sa, že vložená URL je dostupná zo siete zariadenia — webbox vyžaduje konektivitu.
  3. Udržujte vloženú stránku vhodnú pre mobily — modál má maximálnu šírku 800px a 80 % výšky viewportu.
  4. Použite popisné texty tlačidiel (napr. „Zobraziť mapu obce") namiesto generických popiskov („Kliknite tu").
  5. Informujte anketárov, že zatvorenie modálu ich vráti do prieskumu — niektorí používatelia nemusia vedieť, ako zatvoriť iframe prekrytie.

Obmedzenia

  • Webbox vyžaduje sieťové pripojenie na načítanie vloženej URL.
  • Niektoré externé stránky blokujú vkladanie do iframov prostredníctvom hlavičiek X-Frame-Options alebo Content-Security-Policy — tieto stránky nie je možné použiť s webboxom.
  • Modál sa zatvorí keď anketár naviguje preč od otázky — akýkoľvek neuložený stav v iframe sa stratí.
  • Webbox je rozšírením webového formulára rtSurvey a nemusí fungovať v iných klientoch kompatibilných s ODK.
Bola táto stránka užitočná?