Marc Reichelt: JavaScript lernen

Beitrag lesen

Hallo matti,

Bei beiden Varianten wird nicht mal der Player angezeigt.
Kannst du mir noch einaml weiterhelfen um dieses Problem noch zu lösen??

Ich glaube, du solltest dich generell ein wenig mit JavaScript beschäftigen, bevor du ständig nichtfunktionalen Code produzierst und dann hier im Forum fragst, warum dieser nicht funktioniert.

Ich nehme deinen Code einmal Stück für Stück auseinander:

<script>

Ist schon mal falsch. Es heißt:
<script type="text/javascript">

Weiter geht's:

var musikDatei = "example.mp3";  
document.getElementById("mydivelement").innerHTML = "<object ... data=\"emff_wooden.swf?src=" + musikDatei + "\" width=\"120\" height=\"60\">";

Da hast du wohl einfach meinen Code kopiert, ohne dir dabei zu denken, dass die Pünktchen als Platzhalter gedacht sind. Richtig heißt es:

var musikDatei = "example.mp3";  
document.getElementById("mydivelement").innerHTML = "<object type=\"application/x-shockwave-flash\"  data=\"emff_wooden.swf?src=" + musikDatei + "\" width=\"120\" height=\"60\">";

Und weiter geht's:

document.getElementById("mydivelement").innerHTML = "<param name=\"movie\" value=\"emff_wooden.swf?src=" + musikDatei + "\" />";  
document.getElementById("mydivelement").innerHTML = "<param name=\"quality\" value=\"high\"/>";  
document.getElementById("mydivelement").innerHTML = "</object>";

</script>

Hier scheint soweit alles korrekt zu sein.

Allerdings gibt es noch einen Fehler, der sich durch den ganzen Quellcode zieht: Mit innerHTML = "HTML-Text"; überschreibst du stets die Variable innerHTML.

Wenn du am Ende folgende Zeile aufrufst:
alert(document.getElementById("mydivelement").innerHTML);
dürfte im darauf erscheinenden Meldefenster nur "</object>" erscheinen - klar, dass das Objekt nicht angezeigt werden kann.

Schau dir mal den folgenden Code (ungetestet) an - der sollte genau das machen, was du möchtest:

// im Beispiel verwenden wir die Musikdatei "example.mp3" - die Variable wird später logischerweise geändert  
var musicfile = "example.mp3";  
// für einen kürzeren Zugriff speichern wir uns den Container ab  
var container = document.getElementById("mydivelement");  
  
container.innerHTML = "<object type=\"application/x-shockwave-flash\" data=\"emff_wooden.swf?src="  
                    + musicfile + "\" width=\"120\" height=\"60\">\n"  
                    + "  <param name=\"movie\" value=\"emff_wooden.swf?src=" + musicfile + "\" />\n"  
                    + "  <param name=\"quality\" value=\"high\" />\n"  
                    + "</object>";

Um JavaScript zu lernen empfehle ich dir das entsprechende SELFHTML-Kapitel.

Grüße

Marc Reichelt || http://www.marcreichelt.de/

--
Linux is like a wigwam - no windows, no gates and an Apache inside!
Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)