Moderní tvorba webových aplikací

O webu

HTML značka <template>

HTML tag <template> slouží k připravení HTML kódu, který později zpracuje JavaScript.

3 minuty

Při vytváření aplikace v JavaScriptu se může hodit mít po ruce kód HTML, který se použije až později při nějaké události. Šablony pomocí <template> zatím fungují ve Firefoxu a Chrome. V IE ani Opeře 12 ne.

Šablona <template>

Cokoliv je umístěné do značky <template> podporující prohlížeče neřeší do té doby, než obsah JavaScript někde použije. Šablonu je možné umístit takřka kamkoliv do kódu (do <head>, <body>, do tabulky a podobně).

Vlastnosti šablony

  • DOM šablony se nevyhodnocuje.
  • CSS se na šablonu neaplikuje.
  • Obrázky se před použitím nenačítají.

Použití šablony může vypadat následovně:

<template>
  <p>Obsah ukrytý v šabloně</p>
</template>

„Aktivování“ obsahu šablony potom může proběhnout jeho naklonováním do stránky. Obsah z šablony je nutné dolovat přes sablona.content (protože není v DOMu stránky).

var sablona = document.querySelector('#id-sablony');
document.body.appendChild(sablona.content.cloneNode(true));

Před vložením do stránky je možné šablony libovolně JavaScriptem modifikovat. Třeba naplnit daty nějak skriptem vypočtenými a podobně.

sablona.content.querySelector("p").innerHTML = 'Ahoj';

Ukázka

Poznámka: V obsahu šablony (vlastnost content) není možné nacházet elementy metodami typu getElementsByTagName, je nutné použít querySelector.

Přednačtení (preload)

Načíst nějaký obsah z šablony dopředu nejspíš není možné.

Kvůli špatné podpoře šablony napříč prohlížeči existují alternativy

Skrytý element

Obsahu se přidá display: none. Nevýhoda tohoto řešení je, že se tento element přidá do DOMu už při načtení, ačkoliv to není zatím potřeba. Zároveň se stáhnou případné obrázky v elementu umístěné.

JS značka <script> s nesmyslným type

Zajímavější možnost je umístit obsah k pozdějšímu použití do značky <script>, které se dá nesmyslný type, takže její obsah prohlížeč jako JS kód nevyhodnotí.

<script id="sablona" type="nejaky/nesmysl">
  <p>Skrytý obsah, který obnoví JavaScript.</p>
</script>

Obsah se později může vytáhnout přes innerHTML.

document.getElementById("sablona").innerHTML

Ukázka

Související články

Vložení CSS do stránky

Jakými všemi způsoby připojit CSS do stránky.

9 minut

Odeslání formuláře tlačítkem mimo něj

Jak odeslat formulář tlačítkem, které je mimo formulář.

3 minuty

Query string v URL

Řetězec dotazu je část URL za otazníkem obsahující nejrůznější parametry.

10 minut

HTML atribut download

HTML atribut download zlepšuje uživatelský dojem ze stahovaného souboru.

3 minuty

Web jecas.cz píše Bohumil Jahoda, kontakt
Seznam všech článků
2013–2025