tvorba www stránek
tvorba internetových obchodů
programování a vývoj internetových řešení
Kontaktní informace
+420 604 675 156

Jak na spustit APPLET v XHTML ?

Narazil jsem na problém, když jsem zákazníkovi na stránky vkládal malinkatý JAVA APPLET. Při kontrole validity mi validátor nekompromisně oznámil, že nic takového jako APPLET v XHTML neexistuje. Pravda - v XHTML strict je element <applet> zastaralý a nepodporovaný. Jak tedy spustit JAVA APPLET v XHTML, aby kód byl validní ? Zdá se to být jednoduché, většinu zkušenějších z vás napadne řešení - užití elementu <object>. Ano je to opravdu řešení, ale není to tak prosté jak se může zdát.

Zastaralá konstrukce

Následující kód demonstruje klasický kód appletu..

<applet width="500" 
height="300"
code="example.class"
archive="example.jar">
<param name="foo1" value="bar1" />
<param name="foo2" value="bar2" />
<strong>Prohlížeč nepodporuje JAVA</strong>
</applet>

Předpokládané nahrazení elementem OBJECT

Varianta 1:

<object width="500" 
height="300"
classid="java:example.class"
type="application/x-java-applet"
archive="example.jar">
<param name="foo1" value="bar1" />
<param name="foo2" value="bar2" />
<strong>Prohlížeč nepodporuje JAVA</strong>
</object>

Tento kód funguje korektně ve většině dostupných internetových prohlížečů na jádru Gecko a taky v Opeře. Problém nastává, když stránku spustíte v Internet Exploreru. Výsledkem je, že IE applet nejenže nespustí příslušný applet, ale vypíše hlášku, že váš prohlížeč nepodporuje JAVA. Dlouho jsem se s tím mořil a procházel specifikace Microsoftu, nakonec jsem objevil funkční řešení.

Nejdříve je nutné detekovat jestli klientský prohlížeč je Internet Explorer (nejlépe pomocí JAVASCRIPTU a objektu navigator.userAgent), následně je nutné podstrčit Internet Exploreru poněkud odlišný kód:

Varianta 2:

<applet width="500"
height="300"
classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
codebase="http://java.sun.com/update/1.5.0/jinstall-1_5_0-windows-i586.cab">
<param name="archive" value="example.jar" />
<param name="code" value="example" />
<param name="foo1" value="bar1" />
<param name="foo2" value="bar2" />
<strong>Prohlížeč nepodporuje JAVA</strong>
</applet>

Tato varianta je plně funkční, validní a nutná opravdu jen v případě Internet Exploreru - ostatní prohlížeče bezproblémů interpretují varantu č.1.

Opět jednoduché, rychlé a hlavně funkční ! Tak jak mám rád :)

Komentáře

Komentovat tento článek