"Scriptfejl" ved generering af SVG (XML) med indlejret script
Jeg håber dette er banalt, men mangler idéer til at finde løsningen.Mit PHP script genererer en SVG- (Scalable Vector Graphics) fil, der jo er en XML-variant. Dete kører som sådan fint med statisk indhold, blot MIME-typen sættes til "image/svg+xml".
MEN, min genererede SVG-kode indeholder indlejret JavaScript, der er absolut nødvendig for at styre animeringerne i SVG'en. Og hver gang jeg kører PHP-scriptet (i IE6) får jeg en script-fejl: "Der er en syntaksfejl". Åbenbart forsøger IE at eksekvere SVG'ens JavaScript, hvilket den jo ikke skal (det skal SVG-fortolkeren).
Det "sjove" er, at hvis jeg sakser kildekoden fra den side der melder fejl, og laver et statisk dokument med samme kildekode, så kan denne fint vises uden problemer - og den fungerer som den skal !
Så det må vel være et-eller-andet ifm. den måde jeg genererer mit SVG-output. Hvordan skal mit output formatteres så IE ikke forsøger at eksekvere mit indlejrede JavaScript?
Sammendrag af mit PHP-script:
<?php
header ("Content-Type: image/svg+xml");
echo '<'.'?'.'xml version="1.0" encoding="iso-8859-1"'.'?'.'>'."\r\n";
?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20000303 Stylable//EN"
"http://www.w3.org/TR/2000/03/WD-SVG-20000303/DTD/svg-20000303-stylable.dtd" [
<!ENTITY txt "font-family:Verdana; font-size:24px;">
]>
<svg>
<?php echo '<scr'.'ipt lang'.'uage="JavaScr'.'ipt1.2"><'.'![CD'.'ATA['."\r\n"; ?>
... embedded javascript ...
<?php echo ' ]'.']></scr'.'ipt>'; ?>
... resten af SVG'en ...
</svg>