Sebastian Nagel: object Eigenschaft nicht veränderbar

Hallo alle zusammen, ich hoffe mir kann einer von Euch helfen:

ich arbeite im Moment mit <object> in finde immer wieder Probleme, die ich nicht überwinde:

hier mein jetziges Problem mit Quellcode:

(Diese Seite ist in einem Frame (Window 3-geteilt: dünner Sreifen oben und unten)
in der Mitte Platz für Infos)

<html>
<head><title></title>

<script language="Javascript" type="text/javascript">
 <!--
 function Wahl(a)
 {

document.getElementsByName("Spielanzeige").data="Spiele/" + a + ".htm";

}
//-->
</script>
</head>
<body background="../Objects/pictures/Hitman.jpg">
<div style="position:absolute; top:20; left:30;">
<b><font size=3 color=#0000FF face="Comic Sans MS"> Hier erfahrt Ihr was ich schon alles gezockt habe und was ich von den Spielen halte:

</div>

Hier steht dann Text, denn ich aber weggelassen habe (ist zu lang)

<form>
<div style="position:absolute; top:295px; left:390;">
<select name="Spiele" size="1"
onchange="javascript:Wahl(this.form.Spiele.options[this.form.Spiele.selectedIndex].value);">
<option value="1">Alien VS. Pretator 2</option>
<option value="2">Age of Empires 1&2 (Conqueror)</option>
<option value="3">Command and Conquer 1-4</option>
<option value="4">CS - Counterstrike</option>
<option value="5">Dark Omen</option>
<option value ="6">Diablo 1 & 2</option>
<option value="7">Dungeon Keeper I & II</option>
<option value="8">Earth 2140</option>
<option value="9">Earth 2150</option>
<option value="10">Half-Life engl.</option>
<option value="11">Half-Life Blue Shift engl.</option>
<option value="12">Hitman engl.</option>
<option value="13">Quake 2 dt.</option>
<option value=14>Quake 3 engl.</option>
<option value="15">Renegade dt.</option>
<option value="16">Unreal</option>
<option value="17">Warcraft 2</option>
<option value="18">Warcraft 3</option>
<option value="19">Return to C. Wolfenstein engl.</option>
</select>
</form>
</div>

<div style="position:absolute; top:330px; left:10;">
<object data="Spiele/1.htm" name="Spielanzeige" type="text/html" width="1000px" height="150px" border="1">
</object>

</font>
</body>
</html>

Also ich lege ein ScrollDown-Menü an und vergebe allen Optionen  einen Wert. (1,2,3,4,5... usw.)
Falls eine Änderung anfallen sollte, wird das Jscript Wahl ausgeführt und diesem genau der entsprechende Wert übergeben.
Das klappt soweit.
Darunter habe ich ein Object angelegt und mit div style formatiert.
Das Object bekommt ein data, name und type (zusätzlich noch Höhe und Breite, die kann ich nicht weglassen)
Sinn und Zweck der ganzen Angelegenheit ist, daß in das Object bei Änderung des ausgewählten Listenfeldes
eine neue Seite geladen wird.
Das passiert in Wahl() durch

document.getElementsByName("Spielanzeige").data="Spiele/" + a + ".htm";

Ich greife auf den Wert des Objects über seinen Namen zu (hier Spielanzeige)
und übergebe einen neuen Wert. (setzt sich als String aus "Spiele/" + a + ".htm"
zusammen,da die html-Seiten die im Object geladen werden sollen in einem Untermenü liegen
und durchnummeriert sind)

Jetzt komme ich zum Kern des Problems (ich weiss lange genug hat es gedauert):

Es tut sich nichts. Ich habe mir die Werte über alert() vor und nach der Veränderung ausgeben lassen. Sie stimmen überein.
Daraus folgt: es wird keine andere Seite geladen und das Script ist sinnlos.
Das komische: andere Werte lassen sich ändern (z.B. Die Höhe des Objects).

Wenn jemand schon mal damit gearbeitet hat, einen Fehler findet oder sonst irgendwie einen Vorschlag hat schreibe es mir bitte.

Danke Seb

P.S. Eine Lösung über Frames kommt leider nicht in Frage, da der     Hintergrund des Fensters gestreift ist und dann ein glatter
     Übergang schlecht möglich ist.

  1. Hi Sebastian,

    zwei Sachen fielen mir auf.

    1. getElementsByName() liefert eine Collection. Um einem bestimmten Element eine Eigenschaft zuweisen zu können, musst Du es direkt mit einer Index-Nummer ansprechen, also z.B. document.getElementsByName("Spielanzeige")[0].data (vgl. http://selfhtml.teamone.de/javascript/objekte/document.htm#get_elements_by_name). Etwas bequemer geht's, wenn Du dem object nicht nen namke, sondern ne ID zuordnest, dann kommst Du mit getElementById() (http://selfhtml.teamone.de/javascript/objekte/document.htm#get_element_by_id) etwas bequemer dran.

    2. Manchmal ist es notwendig, um eine Kombi String + Variable + String noch ein eval() drumrum zu legen.

    Beides zusammen ergäbe dann:

    document.getElementsByName("Spielanzeige")[0].data=eval("Spiele/" + a + ".htm");

    bzw.

    document.getElementById("Spielanzeige").data=eval("Spiele/" + a + ".htm");

    Grüße,

    Utz