NN: Selectbox in Form in Layer bringt nur Text ...
Thomas Mirke
- browser
Liebe Fachleute!
Ein Layer enthält ein Formular, das eine Selectbox umfasst. Alles wird dynamisch ausgegeben. U.g. Arrays, Funktion Go(x), var hoehe usw. sind natürlich definiert, im IE funktioniert alles schnell und sauber. Netscape bringt (manchmal erst beim Reload, manchmal schon beim ersten Laden) leider nur eine Zeile:
SucheIdeeStoryTeamPreiseKontaktAdresseJobsReferenzenBlablaPresseLeistungen
Die Box geht irgendwie flöten. Manchmal, wenn NN gerade Lust hat, kann man im Quellcode den korrekten Ausgabe-Code sehen - die Interpretation ist trotzdem falsch. Ich vermute daher ein Speicherproblem, finde aber keinen workaround. Hat jemand eine Idee?
Nur eines: Ich möchte die Selektbox dynamisch positionieren, also gerne im Layer lassen.
Vielen Dank für Eure Mühe,
Thomas
sb-Code:
---------------
var sb='<form name="PerlForm"><select size="1" name="PerlAusw" onChange="Go(this.form.PerlAusw.options[this.form.PerlAusw.options.selectedIndex].value)" class="qbar" style="width:100px;" width="100">';
sb+='<option value="nothing">';
sb+='Suche</option>';
sb+='<option VALUE="'+pfad[2][2]+'">';
sb+='Idee</option>';
sb+='<option value="'+pfad[2][1]+'">';
sb+='Story</option>';
sb+='<option value="'+pfad[2][3]+'">';
sb+='Team</option>';
sb+='<option value="'+pfad[3][2]+'">';
sb+='Preise</option>';
sb+='<option value="'+pfad[5][2]+'">';
sb+='Kontakt</option>';
sb+='<option value="'+pfad[5][1]+'">';
sb+='Adresse</option>';
sb+='<option value="'+pfad[2][5]+'">';
sb+='Jobs</option>';
sb+='<option value="'+pfad[2][4]+'">';
sb+='Referenzen</option>';
sb+='<option value="'+pfad[3][3]+'">';
sb+='Blabla</option>';
sb+='<option value="'+pfad[4][1]+'">';
sb+='Presse</option>';
sb+='<option value="'+pfad[3][1]+'">';
sb+='Leistungen</option>';
sb+='</select></form>';
Layer-Code:
---------------
with (document)
{
(ie) ? writeln('<div id="box" style="position:absolute; visibility:visible; width:10; left:10; top:'+hoehe+';">') : writeln('<layer name="impressum" visibility="show" left="10" top="'+hoehe+'">' );
writeln(sb);
(ie) ? writeln('</div>') : writeln('</layer>');
}
Hi.
Diese Darstellung ist mir bekannt.
Wenn NS kein Formular findet schreibt er die Optionen einfach so hin, weil er weder <select> noch <option> ohne Formular interpretiert.
Demnach wird dein Formular nicht richtig erstellt.
Dieser HTML-Code funktioniert jedenfalls in NS
<layer name="impressum" visibility="show" left="100" top="100">
<form name="PerlForm">
<select size="1" name="PerlAusw" onChange="Go(this.form.PerlAusw.options[this.form.PerlAusw.options.selectedIndex].value)" class="qbar" style="width:100px;" width="100">
<option value="nothing">Suche</option>
<option value="nothing">Suche</option>
<option value="nothing">Suche</option>
<option value="nothing">Suche</option>
<option value="nothing">Suche</option>
<option value="nothing">Suche</option>
</select>
</form>
</layer>
Wahrscheinlich interpretiert Perl ein " als Ende eines Strings. Du musst die Anführungszeichen escapen ("), damit sie auch so rauskommen.
Grüße
Sascha
Hallo Sascha,
danke für Deine Antwort, eine Lösung habe ich trotzdem nicht.
Diese Darstellung ist mir bekannt.
Wenn NS kein Formular findet schreibt er die Optionen einfach so hin, weil er weder <select> noch <option> ohne Formular interpretiert.
Demnach wird dein Formular nicht richtig erstellt.
Das ist soweit richtig. Klar ist auch, dass eine nicht-dynamische Lösung im NN mit den gleichen Inhalten reibungslos funktioniert.
Ich vermute, dass der NN bei der dynamischen Lösung, mit JS eine Select-Box in einem Formular in einem Layer auszugeben, ins Stolpern kommt, sprich ein Speicherproblem hat. Dabei geht was verloren und somit hat man das - unvollständige - Ergebnis am Schirm.
Mit NN-Speicherproblemen habe ich schon öfters zu kämpfen gehabt. Wenn die nicht dawären, würde ich nur noch dynamische JS-Seiten ausgeben. Bei allem Vorbehalt gegen den Netscape 6 - die Speicherprobleme sind dort nach meiner Beobachtung immerhin behoben worden.
Mein (unbefriedigendes, weil ohne Layer) Workaround sieht jetzt so aus:
<form name="PerlForm">
<select size="1" name="PerlAusw" ....>
<script language="Javascript">document.write(sb);</script>
</select></form>
Die Box platziere ich an den unteren Rand des Fensters.
Gruss,
Thomas