![]() |
SELFHTML Forumsarchiv |
|
|
Die folgende Nachricht zum Thema stammt von: twb, 28. 02. 2007, 22:45
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
Die folgende Nachricht zum Thema stammt von: twb, 28. 02. 2007, 23:04
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
Die folgende Nachricht zum Thema stammt von: Michi, 28. 02. 2007, 23:14
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
Die folgende Nachricht zum Thema stammt von: twb, 28. 02. 2007, 23:41
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.
Die folgende Nachricht zum Thema stammt von: Michi, 01. 03. 2007, 00:06
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
Die folgende Nachricht zum Thema stammt von: Christian S., 01. 03. 2007, 00:07
Coole Sache :-)
schön gemacht!!
Die folgende Nachricht zum Thema stammt von: twb, 01. 03. 2007, 00:16
Wie heisst's so schön im Kanton Bern, wo ich herkomme: Merciviumau! :-)
© 1998-2006
Impressum, Software: Classic Forum