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
-
9 nejzajímavějších doménových koncovek
19. srpna 2024 -
Optimalizace a zlepšení výkonu kódu: tipy a triky
14. srpna 2023
Nejnovější
-
Jak se chránit před podvody na internetu – část 2
14. října 2024 -
Doména .io v ohrožení: Co přinese předání Čagoských ostrovů?
10. října 2024 -
Jak se chránit před podvody na internetu – část 1
8. října 2024