Sebastian Becker: Netscape-Problem mit select per document.write

Beitrag lesen

Hallo  Carsten,

vielen Dank für deine freundliche Hilfe.

Hier der leider etwas umfangreiche komplette Code (es ist fast unmöglich, festzustellen, ab wann der Fehler auftritt, da dies plötzlich und unberechenbar geschieht).

Zunächst die externe .js-Datei:

------ schnipp ------

// Array mit Menüinhalten aus Datenbank
var items = new Array
(
new item('Layout','layout.htm'),
new item('Layout Content','layout_content.htm'),
new item('Thema 1 Afro Beauty Shop','afrobeautyshop.htm'),
new item('Thema 2 Agrarbank von Griechenland','agrarbank.htm'),
new item('Thema 3 Almina  Mode & Antiquitäten','almina.htm'),
new item('Thema 4 Alta Moda','altamoda.htm'),
new item('Thema 5 Anna Dessous','annadessous.htm'),
new item('Thema 6 Antiques  Schöne alte Möbel','antiques.htm'),
new item('Thema 7 blablablabblablablablablalabla','adress7.htm'),
new item('Thema 8 blablablabblablablablablalabla','adress8.htm'),
new item('Adresse dieser Seite','adress1.htm')
);

function item(theme,adress)
{this.theme=theme;this.adress=adress;}

// Linkaufruf bzw. Alertmeldungen bei falscher Auswahl
function go(adress)
{
if(adress == "headline")
{
alert("Themengruppen können nicht ausgewählt werden." + "\n\nBitte wählen Sie ein Thema.\n");
document.forms[1].reset();
document.selector.link.blur();
return false;
}
else if(adress == "empty")
{
alert("Bitte wählen Sie ein Thema.");
document.forms[1].reset();
document.selector.link.blur();
return false;
}
else if (adress == thisadress)
{
alert("Sie befinden sich bereits auf der von Ihnen ausgewählten Seite!\n");
document.forms[1].reset();
document.selector.link.blur();
return false;
}
else
{
document.location.href = adress;
document.forms[1].reset();
document.selector.link.blur();
}
}

function writemenu()
{
document.write('<form name="selector" title="Wählen Sie aus dem Menü ..." onMouseOver="window.status='Wählen Sie aus dem Menü ...';return true" onMouseOut="window.status=''">'
+'<select size="1" name="link" width="200" style="width:200" class="select1" onChange="go(this.form.link.options[this.form.link.options.selectedIndex].value)"'

// Menüzeile mit fixen Werten schreiben
+'<option value="empty"></option>' // Wird nicht angezeigt (?!)
+'<option value="headline" selected>Schnellnavigation</option>'
+'<option value="empty"></option>'
+'<option value="gesamt.htm">Gesamtliste</option>'
+'<option value="shopping.htm">Shopping</option>'
+'<option value="kultur.htm">Kultur und Unterhaltung</option>'
+'<option value="gastro.htm">Gastronomie, Hotels</option>'
+'<option value="dienstleister.htm">Dienstleister</option>'
+'<option value="Institutionen.htm">Institutionen</option>'
+'<option value="umgebung.htm">Umgebung</option>'
+'<option value="neu.htm">Neue Einträge</option>'
+'<option value="sponsoren.htm">Sponsoren</option>'
+'<option value="empty" selected></option>');

for (var i=0; i<items.length; i++)
{
// Menütext begrenzen für Netscape
var theme_abbrev;  // abgekürzter Menütext
if(items[i].theme.length > 28)
{theme_abbrev = (items[i].theme.substring(0, 28) + "...")}
else {theme_abbrev = items[i].theme};
// Menüzeile mit Werten aus Array schreiben
{document.write('<option value="'+items[i].adress+'">'+theme_abbrev + '</option>');}
}
document.write('</select>'+'</form>');
}

------ schnipp ------

und nun der entsprechende Abschnitt im body:

------ schnipp ------

</table>
<!-- Tabelle Dropdownmenü -->
<table cellspacing="0" cellpadding="0" width="200" border="0">
<tr align="right">
<td><img height="10" src="pictures/onepixel.gif" alt="" width="9"></td>
<td class="link3">
<!-- Dropdownmenü -->
<script language="JavaScript" type="text/javascript">
<!--
writemenu();
//-->
</script>
<noscript><a href="liste.htm" title="Gesamtliste"><img src="pictures/wishlist.gif" width="20" height="11" border="0" alt="Gesamtliste">Gesamtliste </a></noscript></td>
</tr>
</table>
</td>
</tr>
</table>

------ schnipp ------

Über diesem Skript brüte ich nun schon seit Tagen und da habe ich gewagt, es einmal hier zu posten. Vielleicht fällt Dir - oder jemand anderem - ja etwas auf?!

Vielen herzlichen dank für die Mühe (vielleicht fällt ja auch ein Lern- oder Aha-Effekt dabei ab),
Grüße,

Sebastian