Gunnar Bittersmann: Javascript/DOM - xhtml webseite identifizieren

Beitrag lesen

@@Karsten Naumburg:

nuqneH

Was ist die sicherste (beste) Methode um zu ermitteln, ob eine Webseite als html oder xhtml im DOM eingeladen wird.

Wie Cheatah schon fragte: Wozu soll das gut sein?

Sollte man nun auf das html element mit xhtml namespace uri pruefen?

Bringt nichts. @xmlns ist auch vorhanden, wenn XHTML als 'text/html' verarbeitet wird.

Du müsstest etwas finden, was bei der Verarbeitung als XML anders ist als beim Tagsoup-Parser. Und es liegt eigentlich auf der Hand: JavaScript-Bereiche sind bei 'application/xml+xhtml' PCDATA, bei 'text/html' CDATA. Das bedeutet, im ersten Fall werden Zeichenreferenzen aufgelöst, im zweiten nicht. Das lässt sich ausnutzen:

<script type="text/javascript">[code lang=javascript]alert("&auml;".length == 1 ? "XML" : "Tagsoup");</script>[/code]

Wider Erwarten funktioniert es so nicht:

<script type="text/javascript">[code lang=javascript]alert("&auml;" == "ä" ? "XML" : "Tagsoup");</script>[/code]

gibt auch bei XML-Verarbeitung "Tagsoup" aus. Jemand eine Idee, warum?

Qapla'

--
Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)