# Applet mit Parameter aus JavaScript



## Guest (3. Sep 2008)

Ich habe folgendes Problem.

Mein Applet braucht zum starten einen Parameter, den ich normalerweise wie folgt setzen würden:


```
<applet ...>
<param name="param1" value="xyz">
</applet>
```

Nun habe ich aber den Wert für param1 (hier xyz) nur in einer JavaScript Variablen stehen. Wie kann ich diesen nun beim Start an das Applet übergeben?


----------



## L-ectron-X (4. Sep 2008)

Würde gehen, wenn du die Webseite per JavaScript erzeugst. Dann kannst du den Parameter festlegen.
Ich weiß aber nicht, ob man das mit JavaScript machen kann. Mit PHP gehts.


----------



## zilti (11. Sep 2008)

Du könntest das Java Deployment Toolkit benutzen, ist erst noch komfortabler, als die ganzen <embed>- und <object>-Tags zu setzen, und funktioniert immer, wenn JavaScript aktiviert ist:

```
<script src="http://www.java.com/js/deployJava.js"></script>
<script>
    var attributes = {
            // Hier steht das, was normalerweise in <applet ...> steht
            archive:"",
            code: '',
            width: 800,
            height: 600
    };
    var parameters = {
            // hier stehen die Parameter, und zwar name: wert
	//jnlp_href: 'Applet.jnlp', ab Java 6 Update 10 kann man auch eine JNLP verwenden!
            param1: varXyz,
            draggable: 'true', // Damit und mit Java 6 Update 10 lässt sich das Applet per ALT & ziehen aus dem Browser ziehen, ansonsten funktionslos
    };
    deployJava.runApplet( attributes, parameters, "1.6" );
</script>
```
Ich hoffe, ich konnte dir helfen.


----------



## icho (11. Sep 2008)

So hab ich's gemacht( ich weiss, das applet tag ist veraltet):

```
var applt = document.createElement('applet');
          var attr  = document.createAttribute("id");
          attr.nodeValue = "myappletNo1";
          applt.setAttributeNode( attr);
          attr  = document.createAttribute("name");
          attr.nodeValue = "imyappletNo1";
          applt.setAttributeNode( attr);
          attr  = document.createAttribute("code");
          attr.nodeValue = "de.package_x.package_y.Main"; // startklasse
          applt.setAttributeNode( attr);
          attr  = document.createAttribute("codebase");
          attr.nodeValue = "lib/"; // zusaetzliche jar files sind in diesem Unterverzeichnis
          applt.setAttributeNode( attr);
          attr  = document.createAttribute("archive");
          attr.nodeValue = "myappletNo1.jar"; // name des jar files, dass gestartet werden soll
          applt.setAttributeNode( attr);
          attr  = document.createAttribute("mayscript"); // brauchen anscheinend manche browser
          attr.nodeValue = "true";
          applt.setAttributeNode( attr);

          attr  = document.createAttribute("height");
          attr.nodeValue = "100%";
          applt.setAttributeNode( attr);
          attr  = document.createAttribute("width");
          attr.nodeValue = "100%";
          applt.setAttributeNode( attr);
          attr  = document.createAttribute("alt");
          attr.nodeValue = "SuperDuperApplet";
          applt.setAttributeNode( attr);

          var param = document.createElement( "param");
          attr      = document.createAttribute("name");
          attr.nodeValue = "loglevel";
          param.setAttributeNode( attr);
          attr      = document.createAttribute("VALUE");
          attr.nodeValue = "20";
          param.setAttributeNode( attr);
          applt.appendChild( param);

          param = document.createElement( "param");
          attr      = document.createAttribute("name");
          attr.nodeValue = "userid";
          param.setAttributeNode( attr);
          attr      = document.createAttribute("VALUE");
          attr.nodeValue = "Hanswurst";
          param.setAttributeNode( attr);
          applt.appendChild( param);

         document.getElementById('myAppletView').appendChild( applt); // irgendein <div> oder anderes html-element, wo das applet reingeklebt wird
```

Vielleicht hilft's Dir ja. :###


----------



## icho (11. Sep 2008)

es muss natuerlich so heissen:

```
attr  = document.createAttribute("codebase");
          attr.nodeValue = "lib/"; // zusaetzliche jar files sind in diesem Unterverzeichnis steckt das applet
          applt.setAttributeNode( attr);
          attr  = document.createAttribute("archive");
          attr.nodeValue = "myappletNo1.jar"; // name der jar files durch Komma getrennt, die benoetigt werden, auch das des applets selber
          applt.setAttributeNode( attr);
```
Sorry :roll:


----------



## icho (11. Sep 2008)

Alle Zuweisungen

```
attr.nodeValue = "xxx";
```
lassen sich dann dynamisch durch Zuweisungen mit entspr. Variablen erstzen, z.B.:

```
var userid =  'Tom Patapom';
... tons of js-code
...
...
attr.nodeValue =  userid;
```
So, damit duerfte das jetzt aber erklaert sein...


----------

