Jak používat JavaScript v HTML k vytváření interaktivních webových stránek

HTML, CSS a JavaScript jsou tři hlavní jazyky používané při vývoji front-endu. HTML je značkovací jazyk, zatímco CSS je stylovací jazyk.

JavaScript je objektově orientovaný programovací jazyk, který se většinou používá při vytváření klientské strany webových a mobilních aplikací. Tento open-source dynamický jazyk se stal jedním z nejpoužívanějších programovacích jazyků díky své flexibilitě a snadnému porozumění.

Pomocí HTML5 a CSS3 můžete vytvářet statické webové stránky. Chcete-li však takovému webu přidat interaktivitu, musíte použít programovací jazyk, jako je JavaScript, kterému prohlížeče rozumí.

Tento článek vysvětlí, proč potřebujete používat JavaScript s HTML, různé přístupy k přidávání kódu JavaScript do HTML a osvědčené postupy pro kombinaci těchto dvou jazyků.

Proč je klíčové používat JavaScript v HTML

  • Přidat interaktivitu: Interaktivita reaguje na uživatelské vstupy/akce v reálném čase bez opětovného načítání prohlížeče. Například můžete mít počítadlo, které se zvýší o jedničku pokaždé, když na něj kliknete. Dalším příkladem může být odpověď, která uživatelům sděluje, že jejich zpětná vazba byla odeslána pokaždé, když kliknou na tlačítko Odeslat.
  • Ověření na straně klienta: K zachycení správných dat ve formulářích můžete použít JavaScript. Tento programovací jazyk můžete například použít k ověření uživatelských vstupů na přihlašovací stránce podle formátu e-mailu, délky hesla a kombinace znaků, které se mají použít.
  • Manipulace s DOM: JavaScript nabízí objektový model dokumentu (DOM), který usnadňuje dynamickou změnu obsahu webové stránky. Díky této technologii se obsah stránky aktualizuje automaticky na základě uživatelských vstupů bez opětovného načítání webové stránky.
  • Kompatibilita mezi prohlížeči: JavaScript je kompatibilní se všemi moderními prohlížeči. Webové stránky vytvořené pomocí HTML, CSS a JavaScriptu tak budou perfektně fungovat v různých prohlížečích.
  3 různé typy falešných aplikací v obchodě Google Play

Předpoklady

  • Základní porozumění HTML: Rozumíte základním HTML tagům, umíte přidávat tlačítka a vytvářet formuláře pomocí HTML.
  • Základní porozumění CSS: Rozumíte konceptům CSS, jako jsou id, třída a selektory prvků.
  • Editor kódu: Můžete použít editor kódu, jako je VS Code nebo Atom. Pokud nechcete do systému instalovat software, můžete také použít online kompilátor JavaScriptu.

Jak používat JavaScript v HTML

K přidání kódu JavaScript do HTML můžete použít tři hlavní přístupy. Zkoumáme každý přístup a kde se nejlépe hodí.

#1. Vložení kódu mezi značku

Tento přístup vám umožňuje mít kódy JavaScript a HTML ve stejném souboru (souboru HTML). Můžeme začít vytvořením složky projektu, kde si ukážeme, jak to funguje. Tyto příkazy můžete použít k zahájení;

mkdir javascript-html-playground

cd javascript-html-playground

Vytvořte dva soubory; index.html a style.css

Přidejte tento spouštěcí kód do souboru HTML;

<!DOCTYPE html>

<html>

  <head>

    <meta charset="utf-8" />

    <title></title>

    <link rel="stylesheet" href="https://wilku.top/how-to-use-javascript-in-html-to-create-interactive-webpages/style.css" type="text/css" />

  </head>

  <body>

    <div class="form-container">

      <form>

        <label for="name">Name:</label>

        <input type="text" id="name" />

        <br />

        <label for="email">Email:</label>

        <input type="email" id="email" />

        <br />

        <label for="message">Message:</label>

        <textarea

          id="message"

          name="message"

          rows="5"

          cols="30"

          required

        ></textarea>

        <br />

        <input type="submit" value="Submit" />

      </form>

    </div>

  </body>

</html>

Přidejte tento startovací kód do svého souboru CSS;

.form-container {

    display: flex;

    justify-content: center;

    align-items: center;

    height: 100vh; 

  }

  label {

    display: block;

    margin-bottom: 5px;

    font-weight: bold;

  }

  input[type="text"],

  input[type="email"],

  textarea {

    display: block;

    margin-bottom: 10px;

    padding: 5px;

    border: 1px solid #ccc;

    border-radius: 5px;

    font-size: 8px;

  }

  input[type="submit"] {

    background-color: #4CAF50;

    color: white;

    padding: 5px 10px;

    border: none;

    border-radius: 2.5px;

    font-size: 8px;

    cursor: pointer;

  }

  input[type="submit"]:hover {

    background-color: #3e8e41;

  }

Když je webová stránka vykreslena, budete mít něco takového;

Nyní můžeme přidat jednoduchý kód JavaScript, který po kliknutí na tlačítko Odeslat říká „odesláno“. Refaktorovaný HTML kód s JavaScriptem bude;

<!DOCTYPE html>

<html>

  <head>

    <meta charset="utf-8" />

    <title></title>

    <link rel="stylesheet" href="https://wilku.top/how-to-use-javascript-in-html-to-create-interactive-webpages/style.css" type="text/css" />

  </head>

  <body>

    <div class="form-container">

      <form>

        <label for="name">Name:</label>

        <input type="text" id="name" />

        <br />

        <label for="email">Email:</label>

        <input type="email" id="email" />

        <br />

        <label for="message">Message:</label>

        <textarea

          id="message"

          name="message"

          rows="5"

          cols="30"

          required

        ></textarea>

        <br />

        <input type="submit" value="Submit" onclick="submitted()" />

      </form>

    </div>

    <script>

      function submitted() {

        alert("submitted");

      }

    </script>

  </body>

</html>

Když kliknete na tlačítko Odeslat, dostanete něco podobného;

  Můžete použít svůj účet PS4 SMITE na PC?

Pros of embedding JavaScript code between <script> … </script> tags

  • Fast to implement: Working on the same file can save you time as you can reference your JavaScript code from HTML code from the same file. 
  • Easy to read code: The presence of <script> tags separates HTML from JavaScript codes, making it easier to read and debug. 

Cons of embedding JavaScript code between <script> … </script> tags

  • Makes it hard to reuse code: If you have several forms in your app, it means you will create JavaScript code for every form.
  • Slows performance: Big code blocks on the HTML document can slow loading speeds. 

#2. Inline Code by using JavaScript code directly inside HTML

Instead of enclosing the above JavaScript code in <script> …. </script> tags, you can add it directly to the HTML code. We will use the same HTML code and style sheet (style.css). 

<!DOCTYPE html>

<html>

  <head>

    <meta charset="utf-8" />

    <title></title>

    <link rel="stylesheet" href="https://wilku.top/how-to-use-javascript-in-html-to-create-interactive-webpages/style.css" type="text/css" />

  </head>

  <body>

    <div class="form-container">

      <form>

        <label for="name">Name:</label>

        <input type="text" id="name" />

        <br />

        <label for="email">Email:</label>

        <input type="email" id="email" />

        <br />

        <label for="message">Message:</label>

        <textarea

          id="message"

          name="message"

          rows="5"

          cols="30"

          required

        ></textarea>

        <br />

        <input type="submit" value="Submit" onclick="alert('inline submit')" />

      </form>

    </div>

  </body>

</html>

Po kliknutí na odeslat se ve vašem prohlížeči zobrazí malé okno se slovy „inline odeslat“.

Výhody přidání JavaScriptu jako vloženého kódu

  • Rychlá implementace: Při psaní kódu HTML a JavaScript nemusíte přecházet z jednoho dokumentu do druhého.
  • Ideální pro malou aplikaci: Pokud máte malou aplikaci, která nevyžaduje mnoho interaktivity, je inline JavaScript perfektní volbou.
  Nedostáváte Netflix ve 4K? Zde je návod, jak to opravit

Nevýhody přidání JavaScriptu jako vloženého kódu

  • Kód nelze znovu použít: Pokud má vaše aplikace několik formulářů, vytvoříte kód JavaScript pro každý formulář.
  • Zpomaluje výkon: Velké bloky kódu v dokumentu HTML mohou zpomalit rychlost načítání.
  • Čitelnost kódu: Jak se kódová základna neustále rozrůstá, snižuje se čitelnost kódu.

#3. Vytvoření externího souboru JavaScript

Jak vaše aplikace roste, zjistíte, že přidání kódu JavaScript přímo do souboru HTML není dobrý nápad. Pokud máte v souboru HTML mnoho kódu, pravděpodobně budete mít webové stránky s nízkou rychlostí načítání.

Vytvořte nový soubor script.js, který přenese váš kód JavaScript.

Importujte soubor script.js do souboru HTML;

<head>

   <script src="https://wilku.top/how-to-use-javascript-in-html-to-create-interactive-webpages/script.js"></script>

</head>

Nová aktualizovaná stránka HTML bude mít tento kód;

<!DOCTYPE html>

<html>

  <head>

    <meta charset="utf-8" />

    <title></title>

    <link rel="stylesheet" href="https://wilku.top/how-to-use-javascript-in-html-to-create-interactive-webpages/style.css" type="text/css" />

    <script src="https://wilku.top/how-to-use-javascript-in-html-to-create-interactive-webpages/script.js"></script>

  </head>

  <body>

    <div class="form-container">

      <form>

        <label for="name">Name:</label>

        <input type="text" id="name" />

        <br />

        <label for="email">Email:</label>

        <input type="email" id="email" />

        <br />

        <label for="message">Message:</label>

        <textarea

          id="message"

          name="message"

          rows="5"

          cols="30"

          required

        ></textarea>

        <br />

        <input type="submit" value="Submit" />

      </form>

    </div>

  </body>

</html>

Přidejte tento kód do souboru script.js;

document.addEventListener("DOMContentLoaded", function() {

    const form = document.querySelector("form");

    form.addEventListener("submit", function(event) {

      event.preventDefault();

      alert("external JS sheet submit");

    });

  });

Tento JavaScript dělá následující;

  • Máme posluchač událostí, který čeká na spuštění události DOMContentLoaded.
  • Funkce zpětného volání se provede po vyvolání události DOMContentLoaded.
  • Kód používá querySelector k výběru formuláře.
  • Event.preventDefault() používáme, abychom zabránili DOM vybrat výchozí chování (obnovit stránku nebo přejít na novou stránku), když je spuštěna událost odeslání.
  • Po spuštění události odeslání se spustí zpráva „externí odeslání listu JS“.

JavaScript v HTML: Nejlepší postupy

  • Minimalizace velikosti souborů: Čím větší je velikost souboru, tím déle trvá načtení do prohlížeče. Minifikací se odstraní všechny nežádoucí znaky ve zdrojovém kódu, aniž by se změnil jeho význam nebo výkon. K vytvoření kompaktní kódové základny můžete použít nástroje jako Yahoo YUI Compressor a HTMLMinifier.
  • Udržujte svůj kód uspořádaný: Díky tomu se bude snadno číst a udržovat. K uspořádání kódu můžete použít rozšíření, jako je Prettier.
  • Používejte externí knihovny: Pokud knihovna může provádět určitý úkol pro vaši aplikaci, není nutné psát kód od začátku. Vyvarujte se však používání více knihoven, které dosahují stejných cílů na stejném projektu.
  • Optimalizujte umístění JavaScriptu: Pokud máte v úmyslu přidat kód JavaScript do souboru HTML, ujistěte se, že následuje za kódem HTML. Před zavřením značky umístěte JavaScript mezi značky