Met onder andere javascript wil ik van bezoekers checken welk OS ze draaien, welke browser en browserversie ze gebruiken en of en welke versie van een flash- en java-plugin zijn geïnstalleerd. Dit laatste is vooral het belangrijkste.
Om de versie te checken van de geïnstalleerde java-plugin, neem ik in het html-bestand een applet op waarin ik vervolgens de java-class opneem. Vanuit javascript probeer ik de methode uit de applet uit te voeren die de versie teruggeeft. Dit werkt allemaal aardig en geeft de juiste informatie wanneer de java-plugin al of niet is geïnstalleerd.
Het probleem is nu dat het opnmenen van een applet-element, niet valideeert in een html-document met een xhtml 1.1 doctype. Ik zou graag willen dat de xhtml valideert en daarom wil ik de applet vervangen door een object en daarin de java-class opnemen. Alle browsers kunnen de java-methode uitvoeren die de versie teruggeeft behalve IE6.
Een vereenvoudigd voorbeeld, evenals een .rar met het .class-bestand (om lokaal te testen) heb ik online gezet.
In IE6 wordt de versie van de plugin niet teruggegeven en wordt de volgende fout gegeven:
Deze eigenschap of methode wordt niet ondersteund door dit object
Ik heb <param>'s toegevoegd met attributen als name="data", name="classid" (beiden in combinatie met value="JavaVersionDisplayApplet.class"), niets wil echter baten: IE6 blijft deze foutmelding geven. Iemand een oplossing?
Kan iemand me op de goede weg helpen?
Om de versie te checken van de geïnstalleerde java-plugin, neem ik in het html-bestand een applet op waarin ik vervolgens de java-class opneem. Vanuit javascript probeer ik de methode uit de applet uit te voeren die de versie teruggeeft. Dit werkt allemaal aardig en geeft de juiste informatie wanneer de java-plugin al of niet is geïnstalleerd.
Het probleem is nu dat het opnmenen van een applet-element, niet valideeert in een html-document met een xhtml 1.1 doctype. Ik zou graag willen dat de xhtml valideert en daarom wil ik de applet vervangen door een object en daarin de java-class opnemen. Alle browsers kunnen de java-methode uitvoeren die de versie teruggeeft behalve IE6.
Een vereenvoudigd voorbeeld, evenals een .rar met het .class-bestand (om lokaal te testen) heb ik online gezet.
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>Test: Java-detect</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <script type="text/javascript" src="java.js"></script> </head> <body> <!--<applet id="javaversie-applet" code="JavaVersionDisplayApplet.class" />--> <div> <object id="javaversie-object" data="JavaVersionDisplayApplet.class" type="application/x-java-applet"> <param name="code" value="JavaVersionDisplayApplet.class" /> </object> </div> </body> </html> |
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| window.onload = function() { // Haal java-versie uit applet-element // var app = document.getElementById('javaversie-applet'); // var appVersie = app.getVersion(); // Haal java-versie uit object-element var obj = document.getElementById('javaversie-object'); var objVersie = obj.getVersion(); var div = printInfo(objVersie); document.body.appendChild(div); } function printInfo(p_javaversie) { var div = document.createElement('div'); div.id = 'info'; var javaInfo = document.createTextNode('Javaversie: ' + p_javaversie); div.appendChild(javaInfo); return div; } |
In IE6 wordt de versie van de plugin niet teruggegeven en wordt de volgende fout gegeven:
Deze eigenschap of methode wordt niet ondersteund door dit object
Ik heb <param>'s toegevoegd met attributen als name="data", name="classid" (beiden in combinatie met value="JavaVersionDisplayApplet.class"), niets wil echter baten: IE6 blijft deze foutmelding geven. Iemand een oplossing?
Kan iemand me op de goede weg helpen?
[ Voor 19% gewijzigd door Verwijderd op 06-03-2007 14:30 ]