Hallo,
ich habe zwei Probleme mit dem dynamischen einbinden eines Java-Applets mittels JavaScript:
Ich habe ein kleines Applet "geschrieben" (Quellcode zusammenkopiert und kompiliert), mit welchem ich die Version der JavaVM abfragen kann. Klappt an sich auch gut. Wenn ich dann bloß die Funktion aufrufe, bekomme ich die ersten paar male eine Fehlermeldung in Firefox, dass es die Funktion nicht gibt. Beim zweiten oder dritten mal klappt es dann. Woran liegt das?
Das ist der Code mit dem das Applet eingebunden wird:
function createjavaapplet(params, code, id, archive)
{
var object = document.createElement("object");
var par;
if (navigator.appName=="Microsoft Internet Explorer") {
object.setAttribute("classid","clsid:8AD9C840-044E-11D1-B3E9-00805F499D93");
object.setAttribute("codebase","http://java.sun.com/update/1.5.0/jinstall-1_5_0-windows-i586.cab");
par = document.createElement("param");
par.setAttribute("name","code");
par.setAttribute("value",code);
object.appendChild(par);
}
else {
object.setAttribute("classid","java:"+code);
object.setAttribute("type","application/x-java-applet");
if(archive!="") object.setAttribute("archive",archive);
}
object.setAttribute("id",id);
if(archive!="") {
par = document.createElement("param");
par.setAttribute("name","archive");
par.setAttribute("value",archive);
object.appendChild(par);
}
for(var i=0;i<params.length;i++) {
par = document.createElement("param");
par.setAttribute("name",params[i][0]);
par.setAttribute("value",params[i][1]);
object.appendChild(par);
}
return object;
}
function button1()
{
var jver = createjavaapplet(new Array(new Array("codebase","./")), "jversion.class", "jver", "");
var main = document.getElementById("main");
main.appendChild(jver);
}
function button2()
{
jver = document.getElementById("jver");
alert("getJavaVersion():"+jver.getJavaVersion()
+"\ngetJavaVendor():"+jver.getJavaVendor()
+"\ngetJavaVMVersion():"+jver.getJavaVMVersion()
+"\ngetJavaVMVendor():"+jver.getJavaVMVendor()
+"\ngetJavaVMName():"+jver.getJavaVMName()
);
}
Wenn ich nun button1() mache wird das Applet gestartet (was auch in der Statuszeile von FF steht), beim klicken auf button2() gibt es nun aber die ersten ein-zwei Male eine Fehlermeldung (keine direkte, aber er zeigt JavaScript-Fehler an das die Funktion getJavaVersion() nicht existiert), aber danach bekomme ich die MessageBox wie erwartet. Woran liegt das?
Meine zweite Frage: Opera und IE laden irgendwas, aber anscheinend starten sie nicht Java. Wo liegt hier das Problem?
Wenn ich es fest einbinde klappt es im FF sofort, IE und Opera laden das Applet, kennen aber die Funktionen nicht.
Ich habe mich beim einbinden an diese Seite gehalten:
http://ww2.cs.fsu.edu/~steele/XHTML/appletObject.html
Kann mir damit jemand weiterhelfen?
Viele Grüße,
Stefan