Axel Richter: Javascript-Dropdown-Menü funktioniert in Opera nicht

Beitrag lesen

Hallo,

Wie sieht das erzeugte XHTML aus? Was kommt also im Browser an? Bitte komplett inklusive DOCTYPE und ggf. xml-Declaration. Besser wäre ein online-Beispiel.

Eine vorläufige Version gibt es unter
http://www.mschnitzler2000.de/Abspann/abspann.xml

Die dazugehörige XSL-Datei gibt es im gleichen Verzeichnis als abspann.xsl

Hm, Du verläßt Dich auf die XSLT-Parser in den Browsern? Ob das so eine gute Idee ist?

Was ist denn an deinem Opera anders als an meinem? Ich habe auch die aktuelle Version 9.00 und da funktioniert es leider nicht.

Ich habe es mit XHTML probiert, nicht mit XML/XSL.

Offenbar hat Opera nach dem Parsen von XML/XSL Probleme mit dem DOM.

Folgende krude Kombination von Document Object Model Core und Document Object Model HTML funktioniert jedenfalls auch im Opera:

<script type="text/javascript">
function surfto(myForm)
{
alert(myForm); // HTMLFormElement
alert(myForm.name); // myForm
alert(myForm.elements); // HTMLCollection
alert(myForm.elements.length); // 0 ? komisch!
alert(myForm.getElementsByTagName("select")); // NodeList
alert(myForm.getElementsByTagName("select").namedItem("dest")); // HTMLSelectElement
alert(myForm.getElementsByTagName("select").namedItem("dest").selectedIndex); // OK!
alert(myForm.getElementsByTagName("select").namedItem("dest").options); // HTMLOptionsCollection
alert(myForm.getElementsByTagName("select").namedItem("dest").options.length); // OK!

var mySelect = myForm.getElementsByTagName("select").namedItem("dest");
myIndex = mySelect.selectedIndex;
location.href = mySelect.options[myIndex].value;
}
</script>

<form name="myForm" action="#" method="get">
<select name="dest" size="1">
<xsl:for-each select="Film">
<option value="#{translate(Titel, ' ', '')}"><xsl:value-of select="Titel" /></option>
</xsl:for-each>
</select>
<input type="button" value="Start" onclick="surfto(this.form)" />
</form>

Das Komische ist, dass Opera das FORM-Element noch findet. Auch die Collection .elements ist da, allerdings leer. Mit DOM Core findet er dann die NodeList aller SELECT-Elemente und darin auch das mit dem Namen "dest". Dann kann er plötzlich wieder DOM HTML und findet korrekt die HTMLOptionsCollection.

viele Grüße

Axel