Komunikace JAVA appletu s HTML stránkou
Pokud programujete JAVA applety, možná byste rádi věděli, jak může komunikovat JAVA applet s HTML stránkou. V dnešním příkladě si ukážeme, jak na to pomocí JavaScriptu.
Je to poměrně jednoduché. V DOM (Document Object Model) jsou applety přístupné buď pomocí atributu name tak jako jiné elementy stránky nebo v poli applets (jako pole obrázků – images). To znamená, že applety jsou přístupné JavaScriptu. Přístupné jsou všechny public metody appletu. Volat takovouto metodu můžeme takto document.jmeno_appletu.public_metoda. Jak vidíte, je to jednoduché.
Ale musíte si dát pozor na jednu věc. Nesmíte zapomenout, že HTML stránka může být natažena v prohlížeči, ale applet se může ještě stahovat/inicializovat. Proto před si před voláním metod appletu zkontrolujeme zda applet běží. Třída applet má public metodu IsActive(), která říká, zda je applet v běhu. Pomocí ní si ověříme, že je applet inicializován. Musíme si také zkontrolovat, zda je applet již stažen. To uděláme pomocí dotazu na object appletu.
Pro demonstraci si napíšeme jednoduchý applet, který umí pouze zobrazit text. Metodu, přes kterou budeme do appletu vkládat text, jsem pojmenoval setText.
|
Pro kontrolu, zda je applet stažen a inicializován, si napíšeme funkci checkApplet(), kterou spustíme při natažení stránky pomocí události onLoad – <BODY onLoad="checkApplet();"> Funkce si do proměnné aApplet1 uloží referenci na applet, který se v našem příkladu jmenuje Applet1. Pokud má tato proměnná hodnotu null, applet není ještě stažen nebo uživatel nemá povoleno provádění Javy. Pokud je hodnota různá od null(applet je stažen), provede se kontrola, zda již applet běží dotazem na metodu appletu isActive(). Pokud již JVM překompilovala applet a spustila jej, vrací se metoda true. Pokud je tedy applet spuštěn, nastavíme si proměnou appletRunnig na true, aby jsme při dalších přístupech na applet nemuseli se znovu dotazovat appletu, zda je spuštěn. Pokud není applet, spuštěn běží funkce checkApplet v 250ms smyčce.
Pro volání public metody setText našeho ukázkového appletu si napíšeme funkci Text2Applet, která si pouze ověří, zda-li applet běží a pak předá text, který dostala jako parametr do appletu.
|
Při předávání parametrů do funkcí si musíte dávat pozor na 2 věci
-
Nevolat přetěžované funkce, na základě vlastních zkušeností vím, že většinou dochází k volání funkce s nejnižším počtem parametrů daného jména. Liší se to podle verze prohlížeče a jeho JVM.
-
Parametry typu String, float a boolean jsou předávány bez problému. Ostatní je potřeba konvertovat.
Pro demonstraci použijeme funkce uvedené výše a navíc tento kód:
|
Jak sami v ukázce zjistíte, po stisknutí tlačítka "JavaScript – Volaní přetížené funkce", nedojde k vypsání textu "JavaScript 1", ale "JavaScript". Tolik k volání přetěžovaných metod.
A to je pro dnešek vše.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Od iPhonu po Android: Ultra HDR přináší nový standard fotografií
1. listopadu 2024 -
Co je to VRAM a jak ji navýšit bez drahého upgradu?
20. srpna 2024 -
Lék na phishing a apatii ve světě e-mailového marketingu
18. března 2024
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024