Avatar billede larsvn Nybegynder
08. maj 2004 - 18:26 Der er 1 kommentar og
1 løsning

"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>
Avatar billede larsvn Nybegynder
08. maj 2004 - 19:36 #1
Nå, har fået det til at virke, ved dog ikke helt hvorfor. Lukker derfor.

Én ting der i hvert tilfælde drillede mig var IE's caching, hvor hverken no-cache headers, en generelt fravalgt cache i IE-opsætningen eller Ctrl-F5 var nok til at cleare gammelt indhold, browseren skulle lukkes helt ned.

Måske en "specialitet" ifm. plugins ?
Avatar billede olebole Juniormester
08. maj 2004 - 20:44 #2
<ole>

I øvrigt er der ingen grund til at hakke script-tag'ene i stykker. PHP må gerne skrive <script>, m.m.  :)

/mvh
</bole>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester