Webbox
Webbox vkladá externú webovú stránku do prieskumu ako modálny iframe, čo umožňuje anketárom zobraziť referencie alebo pracovať s externými nástrojmi bez opustenia formulára.
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út | Popis |
|---|---|
src | URL na načítanie v iframe. Podporuje jednoduché aj dvojité úvodzovky. |
title | Text 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
| type | name | label |
|---|---|---|
| note | ref_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
| type | name | label |
|---|---|---|
| note | area_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:
| type | name | label | calculation |
|---|---|---|---|
| calculate | webbox_url | concat('https://dashboard.example.com/household?id=', ${household_id}) | |
| note | hh_dash | <webbox src='${webbox_url}' title='Dashboard domácnosti'>Otvoriť dashboard</webbox> |
Atribút src v tagu <webbox> podporuje referencie ${fieldname} keď je popisok vypočítaný z poľa calculate. Zostavte celú URL v poli calculate a odkazujte ju.
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í:
| type | name | label |
|---|---|---|
| begin_repeat | items | Položka |
| text | item_name | Názov položky |
| note | delete_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 opakovaniadelete-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
- 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.
- Uistite sa, že vložená URL je dostupná zo siete zariadenia — webbox vyžaduje konektivitu.
- Udržujte vloženú stránku vhodnú pre mobily — modál má maximálnu šírku 800px a 80 % výšky viewportu.
- Použite popisné texty tlačidiel (napr. „Zobraziť mapu obce") namiesto generických popiskov („Kliknite tu").
- 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-OptionsaleboContent-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.