Toon posts:

[js/html] valideerbaar een java-methode uit applet uitvoeren

Pagina: 1
Acties:

Verwijderd

Topicstarter
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.


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 ]


Verwijderd

Topicstarter
/me probeert met een subtiele schop alsnog een antwoord op zijn vraag te verkrijgen