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
-
Optimalizace a zlepšení výkonu kódu: tipy a triky
14. srpna 2023 -
Netcat a Ncat
8. prosince 2022
Nejnovější
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024