XHTML-ben JavaScript

MathML-t tartalmazó dokumentumban kéne JavaScriptet futtatni. A MathML csak úgy megy, ha (PHP-ből) Content-Type: text/xml headert adok neki, így viszon nem futtatja a JavaScriptet. (Eseménykezelőket pláne nem, de <script type="text/javascript'></script> között sem.)

Hozzászólások

xml + xslt és ez utóbbiba javascript, hogy XHTML oldalt generáljon. Vagy pedig ld. előző válasz.

Persze, hogy lehet, de te XML és nem (X)HTML oldalt generálsz. Az, hogy a címkék véletlenül megegyeznek a HTML-lel, senkit nem érdekel. Ez egy adatokat tartalmazó oldal, amit valaminek értelmeznie kell, önmagában hasznavehetetlen (azt mondtad, xml a Content-Type).

Bár az is inkább application/xml kellene, hogy legyen.

Ha CDATA-ba rakod, esetleg external javascripttel sem megy?

Eszembe jutott megnézni JavaScript-konzolon a dolgot. JavaScript megy (Content-Type-től függetlenül), csak valamiért nem működik a document.writeln. Nem működnek még a HTML-be ágyazva definiált eseménykezelők, és a JavaScript nem látja az id-vel elnevezett objektumokat (és a name-mel elnevezet anchorokat).

<?php header('Content-Type: application/xhtml+xml') ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<script type="text/javascript">
document.writeln('hello world');
</script>
</body>
</html>

Ez szabványos:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>almafa</title></head>
<body>
<script type="text/javascript">
document.writeln('hello world');
</script>
</body>
</html>