Webbox vkládá externí webovou stránku do průzkumu jako modální vyskakovací okno (iframe). Enumerátor klepne na tlačítko v popisku nebo textu poznámky, stránka se otevře v překrytí přes celou obrazovku uvnitř formuláře a když ji zavře, vrátí se přesně tam, kde byl. To vám umožní zobrazit referenční materiál, mapy, dashboardy nebo vlastní nástroje bez otevření samostatné záložky prohlížeče.


Syntaxe

Vložte HTML tag <webbox> přímo do sloupce popisku label nebo note:

  <webbox src='https://example.com/reference' title='Referenční příručka'>Otevřít referenční příručku</webbox>
  
AtributPopis
srcURL pro načtení v iframe. Podporuje jednoduché i dvojité uvozovky.
titleText zobrazený v záhlaví modálního okna. Podporuje prostý text.
(obsah)Popisek klikatelného tlačítka zobrazený v poli průzkumu

Základní příklad

typenamelabel
noteref_guide<webbox src='https://docs.example.com/field-guide' title='Terénní příručka'>📖 Otevřít terénní příručku</webbox>

Toto vykreslí tlačítko s popiskem „📖 Otevřít terénní příručku". Po klepnutí se otevře modální okno zobrazující web terénní příručky.


Vložení mapy

typenamelabel
notearea_map<webbox src='https://maps.example.com/survey-area' title='Mapa oblasti průzkumu'>🗺 Zobrazit mapu</webbox>

Předávání hodnot formuláře do vložené stránky

Připojte hodnoty polí formuláře k URL pomocí concat() ve sloupci calculation a odkazujte výsledek v popisku:

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

Interakce s opakováními: tlačítka pro mazání

Webbox také podporuje speciální tagy akcí pro správu skupin opakování uvnitř popisků:

  <delete-repeat-current>Odebrat tento řádek</delete-repeat-current>
<delete-repeat-last>Odebrat poslední řádek</delete-repeat-last>
  

Tyto se vykreslí jako tlačítka, která po klepnutí mažou instance opakování. Umístěte je do pole note uvnitř (nebo těsně za) skupinu opakování:

typenamelabel
begin_repeatitemsPoložka
textitem_nameNázev položky
notedelete_btn<delete-repeat-current>✕ Odebrat tuto položku</delete-repeat-current>
end_repeat

Komunikace s vloženou stránkou (postMessage)

Iframe webboxu a nadřazený formulář mohou komunikovat pomocí API postMessage prohlížeče. Nadřazená stránka pošle zprávu init do iframe při otevření. Vložená stránka může odpovědět:

  • delete-repeat-current — spustí smazání aktuální instance opakování
  • delete-repeat-last — spustí smazání poslední instance opakování

To umožňuje vlastním webovým nástrojům (např. kreslicí nástroje, interaktivní mapy) spouštět akce formuláře, když uživatel potvrdí akci uvnitř iframe.


Osvědčené postupy

  1. Používejte webbox pro referenční materiál (pokyny, vyhledávací tabulky, mapy) — nikoli pro sběr dat, která by měla být ve formuláři samotném.
  2. Zajistěte, aby vložená URL byla přístupná ze sítě zařízení — webbox vyžaduje připojení.
  3. Udržujte vloženou stránku přívětivou pro mobily — modální okno má maximálně 800px šířku a 80% výšky viewportu.
  4. Používejte popisné texty tlačítek (např. „Zobrazit mapu vesnice") spíše než obecné popisky („Klikněte zde").
  5. Informujte enumerátory, že zavření modálního okna je vrátí do průzkumu — někteří uživatelé nemusí vědět, jak zavřít překrytí iframe.

Omezení

  • Webbox vyžaduje připojení k síti pro načtení vložené URL.
  • Některé externí weby blokují vložení do iframů prostřednictvím hlaviček X-Frame-Options nebo Content-Security-Policy — tyto weby nelze použít s webboxem.
  • Modální okno se zavře, když enumerátor přejde od otázky — jakýkoli neuložený stav v iframe je ztracen.
  • Webbox je rozšíření webového formuláře rtSurvey a nemusí fungovat v jiných klientech kompatibilních s ODK.
Byla tato stránka užitečná?