twb: Dropdownmenü (select) streikt in Opera

Liebe alle - eine Dummie-Frage: Ich schreibe gelegentlich kleine Webspiele (bislang drei an der Zahl) und habe nun allen dreien eine Selectbox hinzugefügt, mittels der man von einem Spiel auf die anderen zwei gelangen kann. Soweit, so gut - in Firefox und im MSIE tut alles, wie es tun soll. Aber Opera streikt. Warum?

Als Beispiel diene etwa http://www.mah-jongg.ch/mastermind - im dynamisch erzeugten HTML steht Folgendes (selbstverständlich sind " als " und / als / maskiert; ich hab' hier etwas vereinfacht):

<form action="">
<select onchange="goto(this)">
<option value="" selected="selected">Other games by twb</option>
<option value="[URL 1]">Spiel 1</option>
<option value="[URL 2]">Spiel 2</option>
</select></form>

Und im dazugehörigen Javascript Folgendes:

function goto (select)
{
val=select.options[select.options.selectedIndex].value;
if (val=="") select.form.reset();
else window.location.href=val;
}

Für kundige Tipps bin ich wie immer ausgesprochen dankbar! Herzlich, twb

  1. Ich sehe gerade, dass mein Posting leicht missverständlich war. Auf meinem Spielebeispiel Master Mind läuft in Opera nicht nur die genannte Selectbox nicht; die gesamte dynamische Ausgabe (also das ganze Spiel mit allem drum und dran) mittels

    document.getElementById('Id').innerHTML=var;

    wird gestoppt. MSIE und FF dagegen zicken nicht, stellen alles so dar wie sie sollen und verzichten auf jede Fehlermeldung. twb

  2. Hallo.

    Warum Opera zickt und andere funktionieren kann ich Dir nicht sagen, weil ich gerade keinen Opera hier zur Hand habe.

    function goto (select)

    Ein Verdacht fällt auf Deinen Parameternamen 'select'. Könnte ein reserviertes Wort sein.

    function goto (select)
    {
    val=select.options[select.options.selectedIndex].value;
    if (val=="") select.form.reset();
    else window.location.href=val;
    }

    Übergib doch mal this.value und machs in Deiner Funktion einfach mal so:
    function goto (wahl)
    {
    if (wahl=="") select.form.reset();
    else window.location.href=wahl;
    }

    Greets

    Michi

    1. Fast richtig, Michi, wie mir scheint: Allerdings lag's erstaunlicherweise nicht am übergebenen Parameter "select", sondern am Funktionsnamen "goto" - der scheint bei Opera offensichtlich verboten zu sein. Ich hab' die Funktion also in

      function go(select)
      {...}

      umbenannt, und jetzt laufen Mahjongg Solitaire und Master Mind auch wieder in Opera. Einzig Sudoku streikt in Opera nach wie vor - warum, ist mir völlig schleierhaft.

      1. Hallo.

        function go(select)
        {...}

        Vom Regen in die Traufe?  ;-)

        Nachdem ich immer wieder mal ins Fettnäppfchen mit reservierten Wörtern getreten bin, hab ich mir angewöhnt, auf so alles Mögliche zu verzichten, was auch nur im entferntesten nach reserviert riecht.

        Neben dem Umstand, dass ich immer ein wenig skptisch bin, ob die Liste der reservierten Wörter vollständig ist, hatte ich schon mal so meine Problemchen mit übereifrigen Korrekturfunktionen von Editoren.

        Viele Grüße

        Michi

      2. Coole Sache :-)

        schön gemacht!!

        1. Wie heisst's so schön im Kanton Bern, wo ich herkomme: Merciviumau! :-)