@@Gunnar Bittersmann:
eine andere Schreibweise für 'el[i].lang' ist 'el[i]["lang"]'.
Diese wäre auch für das 'xml:lang'-Attribut zu gebrauchen
Nicht im Firefox. (Grmpf, hätte ich erstmal testen sollen.)
Da kommste wohl um eine doppelte Abfage nicht drumrum:
var lang = element.getAttribute("xml:lang") || element["xml:lang"];
Mit der Abfrage nach 'lang'-Attribut kombiniert ('xml:lang' hat Vorrang):
var lang = element.getAttribute("xml:lang") || element["xml:lang"] || element.lang;
Das brauchst du aber nur für XHTML-Dokumente, für HTML reicht
var lang = element.lang;
Die Unterscheidung, ob es XHTML oder HTML ist, kannste anhand des in XHTML vorhandenen 'xmlns'-Attributs des 'html'-Elements vornehmen und, damit du sie nur einmal tätigen musst, deren Ergebnis in einer Variablen speichern:
var isXHTML = !!document.body.parentNode.getAttribute("xmlns");
Genaugenommen müsstest du aber auch prüfen, ob XHTML als XML verarbeitet wird, da bei der Verarbeitung als HTML das 'xml:lang'-Attribut keinerlei Wirkung hat. Das ist möglich im XHTML-Dokument:
<script type="text/javascript">[code lang=javascript]var isXML = ("ä" == "ä");<script>[/code]
Beides zusammen:
var isXHTMLplusXML = isXHTML && isXML;
Später damit dann
var lang = isXHTMLplusXML ? element.getAttribute("xml:lang") || element["xml:lang"] || element.lang : element.lang;
Live long and prosper,
Gunnar
„Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
 nicht angemeldet
 nicht angemeldet Gunnar Bittersmann
 Gunnar Bittersmann MudGuard
 MudGuard