|
Das durch einen Patentstreit mit Microsoft entstandene Problem, dass man eingebundene Objekt im Internet Explorer wie zB Java Applets oder Flash-Objekte durch einmaliges anklicken aktivieren muss, nervt seit Monaten unzählige Internet-Surfer, User von Web-Anwendungen und Entwickler, die Workarounds für diese mutwillig von Microsoft eingeführte Änderung suchen müssen.
Schon länger existieren Tips zu Workarounds, einer wurde auch von Microsoft selbst veröffentlich. Das Problem: all diese Workarounds funktionieren bzw. lösen das Problem nur im Falle von statischen<APPLET> oder <OBJECT> Tags. Bis gestern war ich vergeblich auf der Suche nach einer allgemein gültigen Lösung die auch bei serverseitig dynamisch generiertem HTML (zB Java Servlets) funktioniert.
ENDLICH habe ich da auch was gefunden:
Die Anforderung ist, dass zB das APPLET-Tag von einem JavaScript ausserhalb der HTML Datei geschrieben wird, die dynamisch generierten PARAM-Tags können aber wie zuvor direkt in der HTML Datei verbleiben! Ist zwar nicht besonders schön, aber funktioniert: Der Trick ist also eine externe JavaScript-Funktion die das APPLET-Tag mit document.write in den HTML-Code zur Laufzeit einfügt:
[rewriteapplet.js]
function writeAppletHeader(aCode, aArchive, aCodebase, aWidth, aHeight) {
document.write('<APPLET code="' + aCode + '" archive="' + aArchive + '" codebase="' + aCodebase + '" width="' + aWidth + '" height="' + aHeight + '"');
document.write(' align="middle" >');
document.write(' <PARAM NAME="foo" VALUE="bar"> ');
}
[der zB mit JSP oder Velocity dynamisch generierte HTML Code]:
...
<script language="Javascript1.2" src="scripts/rewriteapplet.js">
...
<script>
writeAppletHeader('TheApplet.class', 'applets.jar', 'applets/', '400', '300');
</script>
<param name="appletparam1" value="val1"/>
<param name="actionName" value="${action}"/>
#if ($dependency1==true)<param name="optionalParam" value="valuex">#end
... etc ...
</applet>
Die Basis für diese Lösung findet man bei Real Gagnon's HOW TO (Solution#2) unter:
http://www.rgagnon.com/javadetails/java-0526.html
Thanks Real!!!
|